diff options
Diffstat (limited to 'bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse')
94 files changed, 0 insertions, 14868 deletions
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAttributeDeclarationAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAttributeDeclarationAction.java deleted file mode 100644 index eb95499787..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAttributeDeclarationAction.java +++ /dev/null @@ -1,90 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDAttributeDeclarationCommand; -import org.eclipse.xsd.XSDAttributeGroupDefinition; -import org.eclipse.xsd.XSDAttributeUse; -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDSchema; - -public class AddXSDAttributeDeclarationAction extends XSDBaseAction -{ - public static String ID = "AddXSDAttributeAction"; - - public AddXSDAttributeDeclarationAction(IWorkbenchPart part) - { - super(part); - setText("Add Attribute"); - setId(ID); - } - - public void run() - { - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - - if (selection instanceof XSDBaseAdapter) - { - selection = ((XSDBaseAdapter) selection).getTarget(); - } - AddXSDAttributeDeclarationCommand command = null; - if (selection instanceof XSDComplexTypeDefinition) - { - command = new AddXSDAttributeDeclarationCommand("Add Attribute", (XSDComplexTypeDefinition) selection); - getCommandStack().execute(command); - } - else if (selection instanceof XSDAttributeUse) - { - XSDAttributeUse xsdAttributeUse = (XSDAttributeUse) selection; - XSDConcreteComponent parent = null; - XSDComplexTypeDefinition ct = null; - for (parent = xsdAttributeUse.getContainer(); parent != null;) - { - if (parent instanceof XSDComplexTypeDefinition) - { - ct = (XSDComplexTypeDefinition) parent; - break; - } - parent = parent.getContainer(); - } - if (ct != null) - { - command = new AddXSDAttributeDeclarationCommand("Add Attribute", ct); - getCommandStack().execute(command); - } - } - else if (selection instanceof XSDAttributeGroupDefinition) - { - command = new AddXSDAttributeDeclarationCommand("Add Attribute", (XSDAttributeGroupDefinition)selection); - getCommandStack().execute(command); - } - else if (selection instanceof XSDSchema) - { - command = new AddXSDAttributeDeclarationCommand("Add Attribute", (XSDSchema)selection); - getCommandStack().execute(command); - } - - if (command != null) - { - Adapter adapter = XSDAdapterFactory.getInstance().adapt(command.getAddedComponent()); - if (adapter != null) - provider.setSelection(new StructuredSelection(adapter)); - } - - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAttributeGroupDefinitionAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAttributeGroupDefinitionAction.java deleted file mode 100644 index f111e69f9b..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDAttributeGroupDefinitionAction.java +++ /dev/null @@ -1,63 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDAttributeGroupDefinitionCommand; -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDSchema; - -public class AddXSDAttributeGroupDefinitionAction extends XSDBaseAction -{ - public static String ID = "AddXSDAttributeGroupDefinitionAction"; - - public AddXSDAttributeGroupDefinitionAction(IWorkbenchPart part) - { - super(part); - setText("Add Attribute Group"); - setId(ID); - } - - public void run() - { - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - - if (selection instanceof XSDBaseAdapter) - { - selection = ((XSDBaseAdapter) selection).getTarget(); - } - - AddXSDAttributeGroupDefinitionCommand command = null; - if (selection instanceof XSDComplexTypeDefinition) - { - command = new AddXSDAttributeGroupDefinitionCommand("Add Attribute Group Ref", (XSDComplexTypeDefinition) selection); - getCommandStack().execute(command); - } - else if (selection instanceof XSDSchema) - { - command = new AddXSDAttributeGroupDefinitionCommand("Add Attribute Group Definition", (XSDSchema) selection); - getCommandStack().execute(command); - } - - if (command != null) - { - Adapter adapter = XSDAdapterFactory.getInstance().adapt(command.getAddedComponent()); - if (adapter != null) - provider.setSelection(new StructuredSelection(adapter)); - } - - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDComplexTypeDefinitionAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDComplexTypeDefinitionAction.java deleted file mode 100644 index 07830bc8b0..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDComplexTypeDefinitionAction.java +++ /dev/null @@ -1,51 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDComplexTypeDefinitionCommand; -import org.eclipse.xsd.XSDSchema; - -public class AddXSDComplexTypeDefinitionAction extends XSDBaseAction -{ - public static final String ID = "org.eclipse.wst.xsd.ui.internal.editor.AddXSDComplexTypeDefinitionAction"; - - public AddXSDComplexTypeDefinitionAction(IWorkbenchPart part) - { - super(part); - setText("Add Complex Type"); - setId(ID); - } - - public void run() - { - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - - if (selection instanceof XSDBaseAdapter) - { - selection = ((XSDBaseAdapter) selection).getTarget(); - } - - if (selection instanceof XSDSchema) - { - AddXSDComplexTypeDefinitionCommand command = new AddXSDComplexTypeDefinitionCommand("Add Complex Type", (XSDSchema) selection); - getCommandStack().execute(command); - Adapter adapter = XSDAdapterFactory.getInstance().adapt(command.getAddedComponent()); - if (adapter != null) - provider.setSelection(new StructuredSelection(adapter)); - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDElementAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDElementAction.java deleted file mode 100644 index dbcfd10dff..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDElementAction.java +++ /dev/null @@ -1,126 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDElementCommand; -import org.eclipse.xsd.XSDAttributeUse; -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDModelGroup; -import org.eclipse.xsd.XSDModelGroupDefinition; -import org.eclipse.xsd.XSDSchema; - -//revisit this and see if we can reuse AddFieldAction?? - -public class AddXSDElementAction extends XSDBaseAction -{ - public static String ID = "org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDElementAction"; - public static String REF_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDElementReferenceAction"; - boolean isReference; - - public AddXSDElementAction(IWorkbenchPart part, String id, String label, boolean isReference) - { - super(part); - setText(label); - setId(id); - this.isReference = isReference; - } - - public void run() - { - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - - if (selection instanceof XSDBaseAdapter) - { - selection = ((XSDBaseAdapter) selection).getTarget(); - } - AddXSDElementCommand command = null; - if (selection instanceof XSDComplexTypeDefinition) - { - command = new AddXSDElementCommand(getText(), (XSDComplexTypeDefinition) selection); - command.setReference(isReference); - getCommandStack().execute(command); - } - else if (selection instanceof XSDModelGroupDefinition) - { - command = new AddXSDElementCommand(getText(), (XSDModelGroupDefinition) selection); - command.setReference(isReference); - getCommandStack().execute(command); - } - else if (selection instanceof XSDSchema) - { - command = new AddXSDElementCommand(getText(), (XSDSchema) selection); - getCommandStack().execute(command); - } - else if (selection instanceof XSDModelGroup) - { - XSDModelGroup modelGroup = (XSDModelGroup) selection; - XSDConcreteComponent component = modelGroup.getContainer(); - XSDComplexTypeDefinition ct = null; - while (component != null) - { - if (component instanceof XSDComplexTypeDefinition) - { - ct = (XSDComplexTypeDefinition) component; - break; - } - component = component.getContainer(); - } - - if (ct != null) - { - command = new AddXSDElementCommand(getText(), (XSDModelGroup) selection, ct); - } - else - { - command = new AddXSDElementCommand(getText(), (XSDModelGroup) selection); - } - command.setReference(isReference); - getCommandStack().execute(command); - } - else if (selection instanceof XSDElementDeclaration || selection instanceof XSDAttributeUse) - { - XSDConcreteComponent xsdConcreteComponent = (XSDConcreteComponent) selection; - XSDConcreteComponent parent = null; - XSDComplexTypeDefinition ct = null; - for (parent = xsdConcreteComponent.getContainer(); parent != null; ) - { - if (parent instanceof XSDComplexTypeDefinition) - { - ct = (XSDComplexTypeDefinition)parent; - break; - } - parent = parent.getContainer(); - } - if (ct != null) - { - command = new AddXSDElementCommand(getText(), ct); - command.setReference(isReference); - getCommandStack().execute(command); - } - } - - if (command != null) - { - Adapter adapter = XSDAdapterFactory.getInstance().adapt(command.getAddedComponent()); - if (adapter != null) - provider.setSelection(new StructuredSelection(adapter)); - } - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDModelGroupAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDModelGroupAction.java deleted file mode 100644 index 795253e0c3..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDModelGroupAction.java +++ /dev/null @@ -1,95 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDModelGroupCommand; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDCompositor; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDModelGroup; - -public class AddXSDModelGroupAction extends XSDBaseAction -{ - public static String SEQUENCE_ID = "AddXSDSequenceModelGroupAction"; - public static String CHOICE_ID = "AddXSDChoiceModelGroupAction"; - public static String ALL_ID = "AddXSDAllModelGroupAction"; - XSDCompositor xsdCompositor; - - public AddXSDModelGroupAction(IWorkbenchPart part, XSDCompositor compositor, String ID) - { - super(part); - setText(getLabel(compositor)); - setId(ID); - this.xsdCompositor = compositor; - } - - public void run() - { - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - if (selection instanceof XSDBaseAdapter) - { - XSDConcreteComponent xsdComponent = (XSDConcreteComponent) ((XSDBaseAdapter) selection).getTarget(); - AddXSDModelGroupCommand command = null; - if (xsdComponent instanceof XSDElementDeclaration) - { - XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration) xsdComponent; - - command = new AddXSDModelGroupCommand(getLabel(xsdCompositor), xsdElementDeclaration, xsdCompositor); - getCommandStack().execute(command); - } - else if (xsdComponent instanceof XSDModelGroup) - { - XSDModelGroup xsdModelGroup = (XSDModelGroup) xsdComponent; - - command = new AddXSDModelGroupCommand(getLabel(xsdCompositor), xsdModelGroup, xsdCompositor); - getCommandStack().execute(command); - } - else if (xsdComponent instanceof XSDComplexTypeDefinition) - { - command = new AddXSDModelGroupCommand(getLabel(xsdCompositor), xsdComponent, xsdCompositor); - getCommandStack().execute(command); - } - - if (command != null) - { - Adapter adapter = XSDAdapterFactory.getInstance().adapt(command.getAddedComponent()); - if (adapter != null) - provider.setSelection(new StructuredSelection(adapter)); - } - - } - } - - private String getLabel(XSDCompositor compositor) - { - String result = XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_SEQUENCE"); //$NON-NLS-1$ - if (compositor != null) - { - if (compositor == XSDCompositor.CHOICE_LITERAL) - { - result = XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_CHOICE"); //$NON-NLS-1$ - } - else if (compositor == XSDCompositor.ALL_LITERAL) - { - result = XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_ALL");//$NON-NLS-1$ - } - } - return result; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDModelGroupDefinitionAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDModelGroupDefinitionAction.java deleted file mode 100644 index 8ebfc1b21a..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDModelGroupDefinitionAction.java +++ /dev/null @@ -1,61 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDModelGroupDefinitionCommand; -import org.eclipse.xsd.XSDConcreteComponent; - -public class AddXSDModelGroupDefinitionAction extends XSDBaseAction -{ - public static final String MODELGROUPDEFINITION_ID = "AddXSDModelGroupDefinitionAction"; - public static final String MODELGROUPDEFINITIONREF_ID = "AddXSDModelGroupDefinitionRefAction"; - boolean isReference; - - public AddXSDModelGroupDefinitionAction(IWorkbenchPart part, boolean isReference) - { - super(part); - this.isReference = isReference; - if (isReference) - { - setText("Add Group Ref"); - setId(MODELGROUPDEFINITION_ID); - } - else - { - setText("Add Group"); - setId(MODELGROUPDEFINITIONREF_ID); - } - } - - public void run() - { - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - XSDConcreteComponent xsdConcreteComponent = null; - if (selection instanceof XSDBaseAdapter) - { - xsdConcreteComponent = (XSDConcreteComponent) ((XSDBaseAdapter) selection).getTarget(); - } - if (xsdConcreteComponent != null) - { - AddXSDModelGroupDefinitionCommand command = new AddXSDModelGroupDefinitionCommand(getText(), xsdConcreteComponent, isReference); - getCommandStack().execute(command); - Adapter adapter = XSDAdapterFactory.getInstance().adapt(command.getAddedComponent()); - if (adapter != null) - provider.setSelection(new StructuredSelection(adapter)); - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDSchemaDirectiveAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDSchemaDirectiveAction.java deleted file mode 100644 index 180dae3b1e..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDSchemaDirectiveAction.java +++ /dev/null @@ -1,75 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.emf.common.notify.Adapter; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDImportCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDIncludeCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDRedefineCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.BaseCommand; -import org.eclipse.xsd.XSDSchema; - -public class AddXSDSchemaDirectiveAction extends XSDBaseAction -{ - public static String INCLUDE_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDIncludeAction"; - public static String IMPORT_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDImportAction"; - public static String REDEFINE_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.AddXSDRedefineAction"; - String label; - - public AddXSDSchemaDirectiveAction(IWorkbenchPart part, String ID, String label) - { - super(part); - setText(label); - setId(ID); - this.label = label; - } - - public void run() - { - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - - if (selection instanceof XSDBaseAdapter) - { - selection = ((XSDBaseAdapter) selection).getTarget(); - } - - BaseCommand command = null; - if (selection instanceof XSDSchema) - { - if (INCLUDE_ID.equals(getId())) - { - command = new AddXSDIncludeCommand(label, (XSDSchema) selection); - } - else if (IMPORT_ID.equals(getId())) - { - command = new AddXSDImportCommand(label, (XSDSchema) selection); - } - else if (REDEFINE_ID.equals(getId())) - { - command = new AddXSDRedefineCommand(label, (XSDSchema) selection); - } - getCommandStack().execute(command); - } - - if (command != null) - { - Adapter adapter = XSDAdapterFactory.getInstance().adapt(command.getAddedComponent()); - if (adapter != null) - provider.setSelection(new StructuredSelection(adapter)); - } - - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDSimpleTypeDefinitionAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDSimpleTypeDefinitionAction.java deleted file mode 100644 index ab95e32813..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/AddXSDSimpleTypeDefinitionAction.java +++ /dev/null @@ -1,46 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddXSDSimpleTypeDefinitionCommand; -import org.eclipse.xsd.XSDSchema; - -public class AddXSDSimpleTypeDefinitionAction extends XSDBaseAction -{ - public static final String ID = "org.eclipse.wst.xsd.ui.internal.editor.AddXSDSimpleTypeDefinitionAction"; - - public AddXSDSimpleTypeDefinitionAction(IWorkbenchPart part) - { - super(part); - setText("Add Simple Type"); - setId(ID); - } - - public void run() - { - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - - if (selection instanceof XSDBaseAdapter) - { - selection = ((XSDBaseAdapter) selection).getTarget(); - } - - if (selection instanceof XSDSchema) - { - AddXSDSimpleTypeDefinitionCommand command = new AddXSDSimpleTypeDefinitionCommand("Add Simple Type", (XSDSchema) selection); - getCommandStack().execute(command); - } - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/DeleteXSDConcreteComponentAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/DeleteXSDConcreteComponentAction.java deleted file mode 100644 index faf2838a1e..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/DeleteXSDConcreteComponentAction.java +++ /dev/null @@ -1,48 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.common.commands.DeleteCommand; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.xsd.XSDConcreteComponent; - -public class DeleteXSDConcreteComponentAction extends XSDBaseAction -{ - public static final String DELETE_XSD_COMPONENT_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.DeleteXSDConcreteComponentAction"; //$NON-NLS-1$ - - public DeleteXSDConcreteComponentAction(IWorkbenchPart part) - { - super(part); - setText("Delete"); - setId(DELETE_XSD_COMPONENT_ID); - setImageDescriptor(XSDEditorPlugin.getImageDescriptor("icons/delete_obj.gif") ); - } - - public void run() - { - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - - if (selection instanceof XSDBaseAdapter) - { - selection = ((XSDBaseAdapter) selection).getTarget(); - } - - if (selection instanceof XSDConcreteComponent) - { - DeleteCommand command = new DeleteCommand(getText(), (XSDConcreteComponent) selection); - getCommandStack().execute(command); - } - - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/OpenInNewEditor.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/OpenInNewEditor.java deleted file mode 100644 index f03780c8c7..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/OpenInNewEditor.java +++ /dev/null @@ -1,90 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.resources.ResourcesPlugin; -import org.eclipse.core.runtime.IPath; -import org.eclipse.core.runtime.Path; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbenchPage; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PartInitException; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.part.FileEditorInput; -import org.eclipse.wst.common.uriresolver.internal.util.URIHelper; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDComplexTypeDefinitionAdapter; -import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction; -import org.eclipse.wst.xsd.ui.internal.editor.InternalXSDMultiPageEditor; -import org.eclipse.xsd.XSDComplexTypeDefinition; - -public class OpenInNewEditor extends BaseSelectionAction -{ - public static final String ID = "OpenInNewEditor"; - - public OpenInNewEditor(IWorkbenchPart part) - { - super(part); - setText("Open In New Editor"); - setId(ID); - } - - protected boolean calculateEnabled() - { - return true; - } - - public void run() - { - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - - if (selection instanceof XSDComplexTypeDefinitionAdapter) - { - XSDComplexTypeDefinitionAdapter xsdAdapter = (XSDComplexTypeDefinitionAdapter) selection; - XSDComplexTypeDefinition fComponent = (XSDComplexTypeDefinition) xsdAdapter.getTarget(); - - if (fComponent.getSchema() != null) - { - String schemaLocation = URIHelper.removePlatformResourceProtocol(fComponent.getSchema().getSchemaLocation()); - IPath schemaPath = new Path(schemaLocation); - IFile schemaFile = ResourcesPlugin.getWorkspace().getRoot().getFile(schemaPath); - if (schemaFile != null && schemaFile.exists()) - { - IWorkbenchWindow workbenchWindow = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); - if (workbenchWindow != null) - { - IWorkbenchPage page = workbenchWindow.getActivePage(); - try - { - // TODO: Should use this to open in default editor - // IEditorPart editorPart = IDE.openEditor(page, schemaFile, true); - IEditorPart editorPart = page.openEditor(new FileEditorInput(schemaFile), "org.eclipse.wst.xsd.ui.internal.editor.InternalXSDMultiPageEditor", true); - - if (editorPart instanceof InternalXSDMultiPageEditor) - { - InternalXSDMultiPageEditor xsdEditor = (InternalXSDMultiPageEditor) editorPart; - - xsdEditor.openOnGlobalReference(fComponent); - } - - } - catch (PartInitException pie) - { - } - } - } - } - - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/SetMultiplicityAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/SetMultiplicityAction.java deleted file mode 100644 index 7432d2c726..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/SetMultiplicityAction.java +++ /dev/null @@ -1,61 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.common.commands.SetMultiplicityCommand; -import org.eclipse.xsd.XSDConcreteComponent; - -public class SetMultiplicityAction extends XSDBaseAction -{ - public static String REQUIRED_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.SetMultiplicity.REQUIRED_ID"; - public static String ZERO_OR_ONE_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.SetMultiplicity.ZERO_OR_ONE_ID"; - public static String ZERO_OR_MORE_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.SetMultiplicity.ZERO_OR_MORE_ID"; - public static String ONE_OR_MORE_ID = "org.eclipse.wst.xsd.ui.internal.common.actions.SetMultiplicity.ONE_OR_MORE_ID"; - - SetMultiplicityCommand command; - - public SetMultiplicityAction(IWorkbenchPart part, String label, String ID) - { - super(part); - setText(label); - setId(ID); - command = new SetMultiplicityCommand(label); - } - - public void setMaxOccurs(int i) - { - command.setMaxOccurs(i); - } - - public void setMinOccurs(int i) - { - command.setMinOccurs(i); - } - - public void run() - { - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - - XSDConcreteComponent xsdConcreteComponent = null; - if (selection instanceof XSDBaseAdapter) - { - xsdConcreteComponent = (XSDConcreteComponent)((XSDBaseAdapter) selection).getTarget(); - } - if (xsdConcreteComponent != null) - { - command.setXSDConcreteComponent(xsdConcreteComponent); - getCommandStack().execute(command); - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/SetTypeAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/SetTypeAction.java deleted file mode 100644 index 50d21f57cd..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/SetTypeAction.java +++ /dev/null @@ -1,49 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.common.commands.SetTypeCommand; -import org.eclipse.xsd.XSDConcreteComponent; - -public class SetTypeAction extends XSDBaseAction -{ - public static final String SET_NEW_TYPE_ID = "SetTypeAction_AddType"; - public static final String SELECT_EXISTING_TYPE_ID = "SetTypeAction_ExistingType"; - - SetTypeCommand command; - - public SetTypeAction(String label, String ID, IWorkbenchPart part) - { - super(part); - setText(label); - setId(ID); - } - - public void run() - { - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - - if (selection instanceof XSDBaseAdapter) - { - Object target = ((XSDBaseAdapter) selection).getTarget(); - - if (target instanceof XSDConcreteComponent) - { - command = new SetTypeCommand(getText(), getId(), (XSDConcreteComponent) target); - command.setAdapter((XSDBaseAdapter) selection); - getCommandStack().execute(command); - } - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/XSDBaseAction.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/XSDBaseAction.java deleted file mode 100644 index 5a06b2a6a7..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/actions/XSDBaseAction.java +++ /dev/null @@ -1,54 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.actions; - -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.adt.actions.BaseSelectionAction; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDSchema; - -public class XSDBaseAction extends BaseSelectionAction -{ - - public XSDBaseAction(IWorkbenchPart part) - { - super(part); - } - - protected boolean calculateEnabled() - { - if (getWorkbenchPart() instanceof IEditorPart) - { - IEditorPart owningEditor = (IEditorPart)getWorkbenchPart(); - - Object selection = ((IStructuredSelection) getSelection()).getFirstElement(); - if (selection instanceof XSDBaseAdapter) - { - selection = ((XSDBaseAdapter) selection).getTarget(); - } - XSDSchema xsdSchema = null; - if (selection instanceof XSDConcreteComponent) - { - xsdSchema = ((XSDConcreteComponent)selection).getSchema(); - } - - if (xsdSchema != null && xsdSchema == owningEditor.getAdapter(XSDSchema.class)) - { - return true; - } - } - return false; - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddDocumentationCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddDocumentationCommand.java deleted file mode 100644 index 9366865d75..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddDocumentationCommand.java +++ /dev/null @@ -1,121 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import java.util.List; - -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils; -import org.eclipse.xsd.XSDAnnotation; -import org.eclipse.xsd.XSDConcreteComponent; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -public class AddDocumentationCommand extends BaseCommand -{ - XSDAnnotation xsdAnnotation; - XSDConcreteComponent input; - String newValue, oldValue; - boolean documentationExists; - Element documentationElement; - - public AddDocumentationCommand(String label, XSDAnnotation xsdAnnotation, XSDConcreteComponent input, String newValue, String oldValue) - { - super(label); - this.xsdAnnotation = xsdAnnotation; - this.input = input; - this.newValue = newValue; - this.oldValue = oldValue; - } - - public void execute() - { - xsdAnnotation = XSDCommonUIUtils.getInputXSDAnnotation((XSDConcreteComponent) input, true); - Element element = xsdAnnotation.getElement(); - - List documentationList = xsdAnnotation.getUserInformation(); - documentationElement = null; - documentationExists = false; - if (documentationList.size() > 0) - { - documentationExists = true; - documentationElement = (Element) documentationList.get(0); - } - - if (documentationElement == null) - { - documentationElement = xsdAnnotation.createUserInformation(null); - element.appendChild(documentationElement); - formatChild(documentationElement); - // Defect in model....I create it but the model object doesn't appear - // to be updated - xsdAnnotation.updateElement(); - xsdAnnotation.setElement(element); - } - - try - { - if (documentationElement.hasChildNodes()) - { - if (documentationElement instanceof IDOMElement) - { - IDOMElement domElement = (IDOMElement) documentationElement; - - Node firstChild = documentationElement.getFirstChild(); - Node lastChild = documentationElement.getLastChild(); - int start = 0; - int end = 0; - - IDOMModel model = domElement.getModel(); - IDOMDocument doc = model.getDocument(); - IDOMNode first = null; - if (firstChild instanceof IDOMNode) - { - first = (IDOMNode) firstChild; - start = first.getStartOffset(); - } - if (lastChild instanceof IDOMNode) - { - IDOMNode last = (IDOMNode) lastChild; - end = last.getEndOffset(); - } - - if (domElement != null) - { - oldValue = domElement.getModel().getStructuredDocument().get(start, end - start); - domElement.getModel().getStructuredDocument().replaceText(documentationElement, start, end - start, newValue); - } - } - } - else - { - if (newValue.length() > 0) - { - oldValue = ""; - Node childNode = documentationElement.getOwnerDocument().createTextNode(newValue); - documentationElement.appendChild(childNode); - } - } - } - catch (Exception e) - { - - } - } - - public void undo() - { - super.undo(); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddEnumerationsCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddEnumerationsCommand.java deleted file mode 100644 index 746a525f9a..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddEnumerationsCommand.java +++ /dev/null @@ -1,42 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.xsd.XSDEnumerationFacet; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.util.XSDSchemaBuildingTools; - -public class AddEnumerationsCommand extends BaseCommand -{ - XSDSimpleTypeDefinition simpleType; - String value; - - public AddEnumerationsCommand(String label, XSDSimpleTypeDefinition simpleType) - { - super(label); - this.simpleType = simpleType; - } - - public void setValue(String value) - { - this.value = value; - } - - public void execute() - { - XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory(); - XSDEnumerationFacet enumerationFacet = factory.createXSDEnumerationFacet(); - enumerationFacet.setLexicalValue(value); - simpleType.getFacetContents().add(enumerationFacet); - formatChild(simpleType.getElement()); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensibilityElementCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensibilityElementCommand.java deleted file mode 100644 index 4aa2c79b4f..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensibilityElementCommand.java +++ /dev/null @@ -1,74 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.gef.commands.Command; -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.SpecificationForExtensionsSchema; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -public class AddExtensibilityElementCommand extends Command -{ - Element input, elementToAdd; - SpecificationForExtensionsSchema extensionSchemaSpec; - - public AddExtensibilityElementCommand(String label, Element input, Element elementToAdd) - { - super(label); - this.input = input; - this.elementToAdd = elementToAdd; - } - - public void execute() - { - super.execute(); - addElement(); - } - - public void undo() - { - super.undo(); - // TODO - } - - public void setSchemaProperties(SpecificationForExtensionsSchema appInfoSchemaSpec) - { - this.extensionSchemaSpec = appInfoSchemaSpec; - } - - private void addElement() - { - if (input != null) - { - Document doc = input.getOwnerDocument(); - String name = elementToAdd.getAttribute("name"); - try - { - Element rootElement = doc.createElementNS(extensionSchemaSpec.getNamespaceURI(), name); - String prefix = input.getPrefix(); - rootElement.setPrefix(prefix); - String xmlns = (prefix == null || prefix.equals("")) ? "xmlns" : "xmlns:" + prefix; - Attr nsURIAttribute = doc.createAttribute(xmlns); - nsURIAttribute.setValue(extensionSchemaSpec.getNamespaceURI()); - rootElement.setAttributeNode(nsURIAttribute); - input.appendChild(rootElement); - - } - catch (Exception e) - { - - } - - } - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionAttributeCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionAttributeCommand.java deleted file mode 100644 index ef45e1f142..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionAttributeCommand.java +++ /dev/null @@ -1,106 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import java.util.ArrayList; -import java.util.List; -import java.util.Map; - -import org.eclipse.wst.xml.core.internal.contentmodel.util.DOMNamespaceInfoManager; -import org.eclipse.wst.xml.core.internal.contentmodel.util.NamespaceInfo; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDConcreteComponent; -import org.w3c.dom.Element; - -public class AddExtensionAttributeCommand extends AddExtensionCommand -{ - private static DOMNamespaceInfoManager manager = new DOMNamespaceInfoManager(); - private XSDAttributeDeclaration attribute; - private boolean appInfoAttributeAdded = false; - private boolean prefixAdded = false; - private String attributeQName; - private String namespacePrefix; - - XSDConcreteComponent component; - - - public AddExtensionAttributeCommand(String label, XSDConcreteComponent component, - XSDAttributeDeclaration attribute) - { - super(label); - this.component = component; - this.attribute = attribute; - } - - public void execute() - { - namespacePrefix = handleNamespacePrefices(); - - attributeQName = namespacePrefix + ":" + attribute.getName(); - String value = component.getElement().getAttribute(attributeQName); - if ( value == null) { - appInfoAttributeAdded = true; - component.getElement().setAttribute(attributeQName, ""); - } - } - - public void undo() - { - super.undo(); - // TODO (allison) remove the namespace prefix when applicable as well - if (appInfoAttributeAdded){ - component.getElement().removeAttribute(attributeQName); - } - } - - /** Create a namespace prefix if needed, other wise retrieve - * a predefined namespace prefix - * @return */ - private String handleNamespacePrefices() - { - Element schemaElement = component.getSchema().getElement(); - String prefix = null; - - // If target namespace of the attribute already exists - List namespacePrefices = manager.getNamespaceInfoList(schemaElement); - for (int i = 0; i < namespacePrefices.size(); i++){ - NamespaceInfo info = (NamespaceInfo) namespacePrefices.get(i); - if ( info.uri.equals(attribute.getTargetNamespace())) { - prefix = info.prefix; - } - } - - // Create unquie namespace prefix - if ( prefix == null){ - prefixAdded = true; - prefix = createUniquePrefix(component); - } - - NamespaceInfo info = new NamespaceInfo(attribute.getTargetNamespace(), prefix, ""); - List infoList = new ArrayList(1); - infoList.add(info); - manager.addNamespaceInfo(schemaElement, infoList, false); - return prefix; - } - - protected String createUniquePrefix(XSDConcreteComponent component) - { - String prefix = "p"; - Map prefMapper = component.getSchema().getQNamePrefixToNamespaceMap(); - if ( prefMapper.get(prefix) != null){ - int i = 1; - while ( prefMapper.get(prefix + i) != null) - i++; - prefix += i; - } - return prefix; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionCommand.java deleted file mode 100644 index 3a3ef4cdae..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionCommand.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.gef.commands.Command; -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.SpecificationForExtensionsSchema; - -public class AddExtensionCommand extends Command -{ - protected SpecificationForExtensionsSchema extensionsSchemaSpec; - - protected AddExtensionCommand(String label) - { - super(label); - } - - public void setSchemaProperties(SpecificationForExtensionsSchema appInfoSchemaSpec) - { - this.extensionsSchemaSpec = appInfoSchemaSpec; - } - - public Object getNewObject() - { - return null; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionElementCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionElementCommand.java deleted file mode 100644 index d8b65ff053..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddExtensionElementCommand.java +++ /dev/null @@ -1,111 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import java.util.List; -import java.util.Map; - -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.SpecificationForExtensionsSchema; -import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils; -import org.eclipse.xsd.XSDAnnotation; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDSchema; -import org.w3c.dom.Attr; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -public class AddExtensionElementCommand extends AddExtensionCommand -{ - XSDConcreteComponent input; - XSDElementDeclaration element; - Element appInfo; - Element newElement; - - public AddExtensionElementCommand(String label, XSDConcreteComponent input, XSDElementDeclaration element) - { - super(label); - this.input = input; - this.element = element; - } - - public void execute() - { - super.execute(); - addAnnotationSet(input.getSchema(), extensionsSchemaSpec); - } - - public void undo() - { - super.undo(); - XSDAnnotation xsdAnnotation = XSDCommonUIUtils.getInputXSDAnnotation(input, false); - xsdAnnotation.getElement().removeChild(appInfo); - List appInfos = xsdAnnotation.getApplicationInformation(); - appInfos.remove(appInfo); - xsdAnnotation.updateElement(); - - } - - public void setSchemaProperties(SpecificationForExtensionsSchema spec) - { - this.extensionsSchemaSpec = spec; - } - - public void addAnnotationSet(XSDSchema xsdSchema, SpecificationForExtensionsSchema spec) - { - XSDAnnotation xsdAnnotation = XSDCommonUIUtils.getInputXSDAnnotation(input, true); - addAnnotationSet(spec, xsdAnnotation); - } - - private void addAnnotationSet(SpecificationForExtensionsSchema spec, XSDAnnotation xsdAnnotation) - { - appInfo = xsdAnnotation.createApplicationInformation(spec.getNamespaceURI()); - - if (appInfo != null) - { - Document doc = appInfo.getOwnerDocument(); - - Element rootElement = doc.createElementNS(spec.getNamespaceURI(), element.getName()); - - String prefix = createUniquePrefix(input); - rootElement.setPrefix(prefix); - newElement = rootElement; - - Attr nsURIAttribute = doc.createAttribute("xmlns:"+prefix); - nsURIAttribute.setValue(spec.getNamespaceURI()); - rootElement.setAttributeNode(nsURIAttribute); - appInfo.appendChild(rootElement); - - xsdAnnotation.getElement().appendChild(appInfo); - List appInfos = xsdAnnotation.getApplicationInformation(); - appInfos.add(appInfo); - xsdAnnotation.updateElement(); - } - } - - public Object getNewObject() - { - return newElement; - } - - protected String createUniquePrefix(XSDConcreteComponent component) - { - String prefix = "p"; - Map prefMapper = component.getSchema().getQNamePrefixToNamespaceMap(); - if ( prefMapper.get(prefix) != null){ - int i = 1; - while ( prefMapper.get(prefix + i) != null) - i++; - prefix += i; - } - return prefix; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeDeclarationCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeDeclarationCommand.java deleted file mode 100644 index 567b05e7d0..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeDeclarationCommand.java +++ /dev/null @@ -1,164 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDAttributeGroupDefinition; -import org.eclipse.xsd.XSDAttributeUse; -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDModelGroup; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDTypeDefinition; -import org.w3c.dom.Text; - -public class AddXSDAttributeDeclarationCommand extends BaseCommand -{ - XSDComplexTypeDefinition xsdComplexTypeDefinition; - XSDModelGroup xsdModelGroup; -// XSDSchema xsdSchema; - XSDConcreteComponent parent; - - public AddXSDAttributeDeclarationCommand(String label, XSDComplexTypeDefinition xsdComplexTypeDefinition) - { - super(label); - this.xsdComplexTypeDefinition = xsdComplexTypeDefinition; - } - - public AddXSDAttributeDeclarationCommand(String label, XSDConcreteComponent parent) - { - super(label); - this.parent = parent; - } - - public void execute() - { - XSDAttributeDeclaration attribute = XSDFactory.eINSTANCE.createXSDAttributeDeclaration(); - if (parent == null) - { - attribute.setName(getNewName("Attribute")); //$NON-NLS-1$ - attribute.setTypeDefinition(xsdComplexTypeDefinition.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string")); //$NON-NLS-1$ - - XSDAttributeUse attributeUse = XSDFactory.eINSTANCE.createXSDAttributeUse(); - attributeUse.setAttributeDeclaration(attribute); - attributeUse.setContent(attribute); - - if (xsdComplexTypeDefinition.getAttributeContents() != null) - { - xsdComplexTypeDefinition.getAttributeContents().add(attributeUse); - formatChild(xsdComplexTypeDefinition.getElement()); - } - addedXSDConcreteComponent = attributeUse; - } - else - { - attribute.setTypeDefinition(parent.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string")); //$NON-NLS-1$ - if (parent instanceof XSDSchema) - { - attribute.setName(XSDCommonUIUtils.createUniqueElementName("NewAttribute", parent.getSchema().getAttributeDeclarations())); - XSDSchema xsdSchema = (XSDSchema)parent; - Text textNode = xsdSchema.getDocument().createTextNode("\n"); - xsdSchema.getElement().appendChild(textNode); - xsdSchema.getContents().add(attribute); - } - else if (parent instanceof XSDAttributeGroupDefinition) - { - List list = new ArrayList(); - Iterator i = ((XSDAttributeGroupDefinition)parent).getResolvedAttributeGroupDefinition().getAttributeUses().iterator(); - while (i.hasNext()) - { - XSDAttributeUse use = (XSDAttributeUse)i.next(); - list.add(use.getAttributeDeclaration()); - } - attribute.setName(XSDCommonUIUtils.createUniqueElementName("NewAttribute", list)); - XSDAttributeUse attributeUse = XSDFactory.eINSTANCE.createXSDAttributeUse(); - attributeUse.setAttributeDeclaration(attribute); - attributeUse.setContent(attribute); - - ((XSDAttributeGroupDefinition)parent).getResolvedAttributeGroupDefinition().getContents().add(attributeUse); - formatChild(parent.getElement()); - } - addedXSDConcreteComponent = attribute; - } - } - - ArrayList names; - - protected String getNewName(String description) - { - String candidateName = "New" + description; //$NON-NLS-1$ - XSDConcreteComponent parent = xsdComplexTypeDefinition; - names = new ArrayList(); - int i = 1; - if (parent instanceof XSDComplexTypeDefinition) - { - XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition) parent; - walkUpInheritance(ct); - - boolean ready = false; - while (!ready) - { - ready = true; - for (Iterator iter = names.iterator(); iter.hasNext();) - { - String attrName = (String) iter.next(); - if (candidateName.equals(attrName)) - { - ready = false; - candidateName = "New" + description + String.valueOf(i); //$NON-NLS-1$ - i++; - } - } - } - } - return candidateName; - } - - private void walkUpInheritance(XSDComplexTypeDefinition ct) - { - updateNames(ct); - XSDTypeDefinition typeDef = ct.getBaseTypeDefinition(); - if (ct != ct.getRootType()) - { - if (typeDef instanceof XSDComplexTypeDefinition) - { - XSDComplexTypeDefinition ct2 = (XSDComplexTypeDefinition) typeDef; - walkUpInheritance(ct2); - } - } - } - - private void updateNames(XSDComplexTypeDefinition ct) - { - Iterator iter = ct.getAttributeContents().iterator(); - while (iter.hasNext()) - { - Object obj = iter.next(); - if (obj instanceof XSDAttributeUse) - { - XSDAttributeUse use = (XSDAttributeUse) obj; - XSDAttributeDeclaration attr = use.getAttributeDeclaration(); - String attrName = attr.getName(); - if (attrName != null) - { - names.add(attrName); - } - } - } - - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeGroupDefinitionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeGroupDefinitionCommand.java deleted file mode 100644 index be06d30968..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDAttributeGroupDefinitionCommand.java +++ /dev/null @@ -1,148 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDAttributeGroupDefinition; -import org.eclipse.xsd.XSDAttributeUse; -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDTypeDefinition; -import org.w3c.dom.Text; - -public class AddXSDAttributeGroupDefinitionCommand extends BaseCommand -{ - XSDComplexTypeDefinition xsdComplexTypeDefinition; - XSDSchema xsdSchema; - - public AddXSDAttributeGroupDefinitionCommand(String label, XSDComplexTypeDefinition xsdComplexTypeDefinition) - { - super(label); - this.xsdComplexTypeDefinition = xsdComplexTypeDefinition; - } - - public AddXSDAttributeGroupDefinitionCommand(String label, XSDSchema xsdSchema) - { - super(label); - this.xsdSchema = xsdSchema; - } - - public void execute() - { - XSDAttributeGroupDefinition attributeGroup = XSDFactory.eINSTANCE.createXSDAttributeGroupDefinition(); - if (xsdSchema == null) - { - attributeGroup.setName(getNewName("AttributeGroup")); //$NON-NLS-1$ - - List list = xsdComplexTypeDefinition.getSchema().getAttributeGroupDefinitions(); - if (list.size() > 0) - { - attributeGroup.setResolvedAttributeGroupDefinition((XSDAttributeGroupDefinition) list.get(0)); - } - else - { - attributeGroup.setName(null); - XSDAttributeGroupDefinition attributeGroup2 = XSDFactory.eINSTANCE.createXSDAttributeGroupDefinition(); - attributeGroup2.setName(XSDCommonUIUtils.createUniqueElementName("NewAttributeGroup", xsdComplexTypeDefinition.getSchema().getAttributeGroupDefinitions())); - xsdComplexTypeDefinition.getSchema().getContents().add(attributeGroup2); - attributeGroup.setResolvedAttributeGroupDefinition(attributeGroup2); - } - - if (xsdComplexTypeDefinition.getAttributeContents() != null) - { - xsdComplexTypeDefinition.getAttributeContents().add(attributeGroup); - } - addedXSDConcreteComponent = attributeGroup; - } - else - { - attributeGroup.setName(XSDCommonUIUtils.createUniqueElementName("NewAttributeGroup", xsdSchema.getAttributeGroupDefinitions())); - Text textNode = xsdSchema.getDocument().createTextNode("\n"); - xsdSchema.getElement().appendChild(textNode); - xsdSchema.getContents().add(attributeGroup); - addedXSDConcreteComponent = attributeGroup; - } - } - - ArrayList names; - - protected String getNewName(String description) - { - String candidateName = "New" + description; //$NON-NLS-1$ - XSDConcreteComponent parent = xsdComplexTypeDefinition; - names = new ArrayList(); - int i = 1; - if (parent instanceof XSDComplexTypeDefinition) - { - XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition) parent; - walkUpInheritance(ct); - - boolean ready = false; - while (!ready) - { - ready = true; - for (Iterator iter = names.iterator(); iter.hasNext();) - { - String attrName = (String) iter.next(); - if (candidateName.equals(attrName)) - { - ready = false; - candidateName = "New" + description + String.valueOf(i); //$NON-NLS-1$ - i++; - } - } - } - } - return candidateName; - } - - private void walkUpInheritance(XSDComplexTypeDefinition ct) - { - updateNames(ct); - XSDTypeDefinition typeDef = ct.getBaseTypeDefinition(); - if (ct != ct.getRootType()) - { - if (typeDef instanceof XSDComplexTypeDefinition) - { - XSDComplexTypeDefinition ct2 = (XSDComplexTypeDefinition) typeDef; - walkUpInheritance(ct2); - } - } - } - - private void updateNames(XSDComplexTypeDefinition ct) - { - Iterator iter = ct.getAttributeContents().iterator(); - while (iter.hasNext()) - { - Object obj = iter.next(); - if (obj instanceof XSDAttributeUse) - { - XSDAttributeUse use = (XSDAttributeUse) obj; - XSDAttributeDeclaration attr = use.getAttributeDeclaration(); - String attrName = attr.getName(); - if (attrName != null) - { - names.add(attrName); - } - } - } - - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDComplexTypeDefinitionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDComplexTypeDefinitionCommand.java deleted file mode 100644 index 7ec1a413b8..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDComplexTypeDefinitionCommand.java +++ /dev/null @@ -1,113 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDTypeDefinition; -import org.eclipse.xsd.util.XSDSchemaBuildingTools; -import org.w3c.dom.Text; - -public final class AddXSDComplexTypeDefinitionCommand extends BaseCommand -{ - protected XSDConcreteComponent parent; - protected XSDComplexTypeDefinition createdComplexType; - private String nameToAdd; - - public AddXSDComplexTypeDefinitionCommand(String label, XSDConcreteComponent parent) - { - super(label); - this.parent = parent; - } - - public void setNameToAdd(String nameToAdd) - { - this.nameToAdd = nameToAdd; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.gef.commands.Command#execute() - */ - public void execute() - { - XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory(); - XSDComplexTypeDefinition complexType = factory.createXSDComplexTypeDefinition(); - addedXSDConcreteComponent = complexType; - String newName = getNewName(nameToAdd == null ? "NewXSDComplexType" : nameToAdd, parent.getSchema()); - complexType.setName(newName); - if (parent instanceof XSDSchema) - { - try - { - XSDSchema xsdSchema = (XSDSchema)parent; - Text textNode = xsdSchema.getDocument().createTextNode("\n"); - xsdSchema.getElement().appendChild(textNode); - xsdSchema.getContents().add(complexType); - } - catch (Exception e) - { - e.printStackTrace(); - } - } - else if (parent instanceof XSDElementDeclaration) - { - ((XSDElementDeclaration) parent).setAnonymousTypeDefinition((XSDComplexTypeDefinition) complexType); - formatChild(parent.getElement()); - } - createdComplexType = complexType; - } - - protected String getNewName(String description, XSDSchema schema) - { - String candidateName = description; //$NON-NLS-1$ - int i = 1; - - List list = schema.getTypeDefinitions(); - List listOfNames = new ArrayList(); - for (Iterator iter = list.iterator(); iter.hasNext();) - { - XSDTypeDefinition typeDef = (XSDTypeDefinition) iter.next(); - String name = typeDef.getName(); - if (name == null) - name = ""; - if (typeDef.getTargetNamespace() == schema.getTargetNamespace()) - listOfNames.add(name); - } - - boolean flag = true; - while (flag) - { - if (!listOfNames.contains(candidateName)) - { - flag = false; - break; - } - candidateName = description + String.valueOf(i); //$NON-NLS-1$ - i++; - } - - return candidateName; - } - - public XSDComplexTypeDefinition getCreatedComplexType() - { - return createdComplexType; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDElementCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDElementCommand.java deleted file mode 100644 index 9654531f87..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDElementCommand.java +++ /dev/null @@ -1,293 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils; -import org.eclipse.xsd.XSDComplexTypeContent; -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDCompositor; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDModelGroup; -import org.eclipse.xsd.XSDModelGroupDefinition; -import org.eclipse.xsd.XSDParticle; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.util.XSDSchemaBuildingTools; -import org.w3c.dom.Text; - -public class AddXSDElementCommand extends BaseCommand -{ - XSDComplexTypeDefinition xsdComplexTypeDefinition; - XSDModelGroupDefinition xsdModelGroupDefinition; - XSDModelGroup xsdModelGroup; - XSDSchema xsdSchema; - boolean isReference; -private String nameToAdd; - - public AddXSDElementCommand() - { - super(); - } - - public AddXSDElementCommand(String label, XSDComplexTypeDefinition xsdComplexTypeDefinition) - { - super(label); - this.xsdComplexTypeDefinition = xsdComplexTypeDefinition; - xsdModelGroup = getModelGroup(xsdComplexTypeDefinition); - } - - public AddXSDElementCommand(String label, XSDModelGroupDefinition xsdModelGroupDefinition) - { - super(label); - this.xsdModelGroupDefinition = xsdModelGroupDefinition; - xsdModelGroup = getModelGroup(xsdModelGroupDefinition); - } - - public AddXSDElementCommand(String label, XSDModelGroup xsdModelGroup, XSDComplexTypeDefinition xsdComplexTypeDefinition) - { - super(label); - this.xsdModelGroup = xsdModelGroup; - this.xsdComplexTypeDefinition = xsdComplexTypeDefinition; - } - - public AddXSDElementCommand(String label, XSDModelGroup xsdModelGroup) - { - super(label); - this.xsdModelGroup = xsdModelGroup; - } - - public AddXSDElementCommand(String label, XSDSchema xsdSchema) - { - super(label); - this.xsdSchema = xsdSchema; - } - - public void setReference(boolean isReference) - { - this.isReference = isReference; - } - - public void setNameToAdd(String name){ - nameToAdd = name; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.gef.commands.Command#execute() - */ - public void execute() - { - if (xsdSchema != null) - { - XSDElementDeclaration element = createGlobalXSDElementDeclaration(); - Text textNode = xsdSchema.getDocument().createTextNode("\n"); - xsdSchema.getElement().appendChild(textNode); - xsdSchema.getContents().add(element); - addedXSDConcreteComponent = element; - } - else if (xsdModelGroupDefinition != null) - { - if (xsdModelGroup == null) - { - XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory(); - XSDParticle particle = factory.createXSDParticle(); - xsdModelGroup = factory.createXSDModelGroup(); - xsdModelGroup.setCompositor(XSDCompositor.SEQUENCE_LITERAL); - particle.setContent(xsdModelGroup); - } - if (!isReference) - { - xsdModelGroup.getContents().add(createXSDElementDeclaration()); - } - else - { - xsdModelGroup.getContents().add(createXSDElementReference()); - } - } - else if (xsdComplexTypeDefinition == null && xsdModelGroup != null) - { - xsdSchema = xsdModelGroup.getSchema(); - if (!isReference) - { - xsdModelGroup.getContents().add(createXSDElementDeclaration()); - } - else - { - xsdModelGroup.getContents().add(createXSDElementReference()); - } - formatChild(xsdModelGroup.getElement()); - } - else - { - if (xsdModelGroup == null) - { - XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory(); - XSDParticle particle = factory.createXSDParticle(); - xsdModelGroup = factory.createXSDModelGroup(); - xsdModelGroup.setCompositor(XSDCompositor.SEQUENCE_LITERAL); - particle.setContent(xsdModelGroup); - xsdComplexTypeDefinition.setContent(particle); - } - xsdSchema = xsdComplexTypeDefinition.getSchema(); - - if (!isReference) - { - xsdModelGroup.getContents().add(createXSDElementDeclarationForComplexType()); - } - else - { - xsdModelGroup.getContents().add(createXSDElementReference()); - } - formatChild(xsdModelGroup.getElement()); - } - - } - - protected XSDParticle createXSDElementDeclaration() - { - XSDSimpleTypeDefinition type = xsdModelGroup.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string"); - - XSDElementDeclaration element = XSDFactory.eINSTANCE.createXSDElementDeclaration(); - - ArrayList usedAttributeNames = new ArrayList(); - usedAttributeNames.addAll(XSDCommonUIUtils.getChildElements(xsdModelGroup)); - element.setName(XSDCommonUIUtils.createUniqueElementName( - nameToAdd == null ? "NewElement" : nameToAdd , xsdSchema.getElementDeclarations())); - element.setTypeDefinition(type); - - XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle(); - particle.setContent(element); - addedXSDConcreteComponent = element; - return particle; - } - - protected XSDParticle createXSDElementReference() - { - List list = xsdModelGroup.getSchema().getElementDeclarations(); - XSDElementDeclaration referencedElement = null; - if (list.size() > 0) - { - referencedElement = (XSDElementDeclaration)list.get(0); - } - else - { - referencedElement = createGlobalXSDElementDeclaration(); - Text textNode = xsdSchema.getDocument().createTextNode("\n"); - xsdSchema.getElement().appendChild(textNode); - xsdSchema.getContents().add(referencedElement); - } - - XSDElementDeclaration element = XSDFactory.eINSTANCE.createXSDElementDeclaration(); - - element.setResolvedElementDeclaration(referencedElement); - XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle(); - particle.setContent(element); - addedXSDConcreteComponent = element; - return particle; - } - - protected XSDParticle createXSDElementDeclarationForComplexType() - { - XSDSimpleTypeDefinition type = xsdModelGroup.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string"); - - XSDElementDeclaration element = XSDFactory.eINSTANCE.createXSDElementDeclaration(); - - ArrayList usedAttributeNames = new ArrayList(); - usedAttributeNames.addAll(XSDCommonUIUtils.getAllAttributes(xsdComplexTypeDefinition)); - usedAttributeNames.addAll(XSDCommonUIUtils.getInheritedAttributes(xsdComplexTypeDefinition)); - element.setName(XSDCommonUIUtils.createUniqueElementName( - nameToAdd == null ? "NewElement" : nameToAdd , usedAttributeNames)); - element.setTypeDefinition(type); - - XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle(); - particle.setContent(element); - addedXSDConcreteComponent = element; - return particle; - } - - protected XSDElementDeclaration createGlobalXSDElementDeclaration() - { - XSDSimpleTypeDefinition type = xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("string"); - XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory(); - XSDElementDeclaration element = factory.createXSDElementDeclaration(); - - element.setName(XSDCommonUIUtils.createUniqueElementName( - nameToAdd == null ? "NewElement" : nameToAdd , xsdSchema.getElementDeclarations())); - element.setTypeDefinition(type); - - return element; - } - - public XSDModelGroup getModelGroup(XSDModelGroupDefinition modelGroupDef) - { - return modelGroupDef.getModelGroup(); - } - - //PORT - public XSDModelGroup getModelGroup(XSDComplexTypeDefinition cType) - { - XSDParticle particle = cType.getSyntheticParticle(); - - XSDComplexTypeContent xsdComplexTypeContent = cType.getContent(); - if (xsdComplexTypeContent instanceof XSDParticle) - { - particle = (XSDParticle)xsdComplexTypeContent; - } - - if (particle == null) - { - return null; - } - - Object particleContent = particle.getContent(); - XSDModelGroup group = null; - - if (particleContent instanceof XSDModelGroupDefinition) - { - group = ((XSDModelGroupDefinition) particleContent).getResolvedModelGroupDefinition().getModelGroup(); - } - else if (particleContent instanceof XSDModelGroup) - { - group = (XSDModelGroup) particleContent; - } - - if (group == null) - { - return null; - } - -// if (group.getContents().isEmpty() || group.eResource() != cType.eResource()) -// { -// if (cType.getBaseType() != null) -// { -// XSDComplexTypeContent content = cType.getContent(); -// if (content instanceof XSDParticle) -// { -// group = (XSDModelGroup) ((XSDParticle) content).getContent(); -// } -// } -// } - - return group; - } - - public XSDConcreteComponent getAddedComponent() - { - return super.getAddedComponent(); - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDImportCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDImportCommand.java deleted file mode 100644 index 2a31115fa2..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDImportCommand.java +++ /dev/null @@ -1,32 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDImport; -import org.eclipse.xsd.XSDSchema; - -public class AddXSDImportCommand extends AddXSDSchemaDirectiveCommand -{ - public AddXSDImportCommand(String label, XSDSchema schema) - { - super(label); - this.xsdSchema = schema; - } - - public void execute() - { - XSDImport xsdImport = XSDFactory.eINSTANCE.createXSDImport(); - xsdSchema.getContents().add(findNextPositionToInsert(), xsdImport); - addedXSDConcreteComponent = xsdImport; - formatChild(xsdSchema.getElement()); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDIncludeCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDIncludeCommand.java deleted file mode 100644 index 27c978086a..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDIncludeCommand.java +++ /dev/null @@ -1,33 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDInclude; -import org.eclipse.xsd.XSDSchema; - -public class AddXSDIncludeCommand extends AddXSDSchemaDirectiveCommand -{ - public AddXSDIncludeCommand(String label, XSDSchema schema) - { - super(label); - this.xsdSchema = schema; - } - - public void execute() - { - XSDInclude xsdInclude = XSDFactory.eINSTANCE.createXSDInclude(); - xsdInclude.setSchemaLocation(""); - xsdSchema.getContents().add(findNextPositionToInsert(), xsdInclude); - addedXSDConcreteComponent = xsdInclude; - formatChild(xsdSchema.getElement()); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDModelGroupCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDModelGroupCommand.java deleted file mode 100644 index d5ebdaf983..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDModelGroupCommand.java +++ /dev/null @@ -1,143 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDCompositor; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDModelGroup; -import org.eclipse.xsd.XSDParticle; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.util.XSDSchemaBuildingTools; - -public class AddXSDModelGroupCommand extends BaseCommand -{ - XSDConcreteComponent parent; - XSDCompositor xsdCompositor; - XSDModelGroup newModelGroup; - - public AddXSDModelGroupCommand(String label, XSDConcreteComponent parent, XSDCompositor xsdCompositor) - { - super(label); - this.parent = parent; - this.xsdCompositor = xsdCompositor; - } - - public void execute() - { - XSDConcreteComponent owner = getOwner(); - if (owner != null) - { - XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle(); - newModelGroup = createModelGroup(); - particle.setContent(newModelGroup); - - XSDComplexTypeDefinition ctd = (XSDComplexTypeDefinition)owner; - ctd.setContent(particle); - } - formatChild(parent.getElement()); - } - - public void undo() - { - super.undo(); - - if (parent instanceof XSDModelGroup) - { - XSDModelGroup model = (XSDModelGroup) parent; - model.getContents().remove(newModelGroup.getContainer()); - } - } - - private XSDConcreteComponent getOwner() - { - XSDConcreteComponent owner = null; - if (parent instanceof XSDElementDeclaration) - { - XSDElementDeclaration ed = (XSDElementDeclaration)parent; - if (ed.getTypeDefinition() != null) - { - if (ed.getAnonymousTypeDefinition() == null) - { - ed.setTypeDefinition(null); - XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition(); - ed.setAnonymousTypeDefinition(td); - owner = ed.getTypeDefinition(); - } - else - { - XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition(); - ed.setAnonymousTypeDefinition(td); - owner = td; - } - } - else if (ed.getAnonymousTypeDefinition() == null) - { - XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition(); - ed.setAnonymousTypeDefinition(td); - owner = td; - } - else if (ed.getAnonymousTypeDefinition() instanceof XSDComplexTypeDefinition) - { - owner = ed.getAnonymousTypeDefinition(); - } - else if (ed.getAnonymousTypeDefinition() instanceof XSDSimpleTypeDefinition) - { - XSDComplexTypeDefinition td = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition(); - ed.setAnonymousTypeDefinition(td); - owner = td; - } - } - else if (parent instanceof XSDModelGroup) - { - newModelGroup = createModelGroup(); - ((XSDModelGroup) parent).getContents().add(newModelGroup.getContainer()); - } - else if (parent instanceof XSDComplexTypeDefinition) - { - XSDComplexTypeDefinition ct = (XSDComplexTypeDefinition)parent; - owner = parent; - if (ct.getContent() instanceof XSDParticle) - { - XSDParticle particle = (XSDParticle)ct.getContent(); - if (particle.getContent() instanceof XSDModelGroup) - { - owner = null; - newModelGroup = createModelGroup(); - XSDModelGroup newParent = (XSDModelGroup)particle.getContent(); - newParent.getContents().add(newModelGroup.getContainer()); - } - - } - } - return owner; - } - - - protected boolean adopt(XSDConcreteComponent model) - { - return false; - } - - protected XSDModelGroup createModelGroup() - { - - XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory(); - XSDParticle particle = factory.createXSDParticle(); - XSDModelGroup modelGroup = factory.createXSDModelGroup(); - modelGroup.setCompositor(xsdCompositor); - particle.setContent(modelGroup); - addedXSDConcreteComponent = modelGroup; - return modelGroup; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDModelGroupDefinitionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDModelGroupDefinitionCommand.java deleted file mode 100644 index ed0a8b3d74..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDModelGroupDefinitionCommand.java +++ /dev/null @@ -1,103 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import java.util.List; - -import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils; -import org.eclipse.xsd.XSDCompositor; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDModelGroup; -import org.eclipse.xsd.XSDModelGroupDefinition; -import org.eclipse.xsd.XSDParticle; -import org.eclipse.xsd.util.XSDSchemaBuildingTools; -import org.w3c.dom.Text; - -public class AddXSDModelGroupDefinitionCommand extends BaseCommand -{ - XSDConcreteComponent parent; - boolean isReference; - - public AddXSDModelGroupDefinitionCommand(String label, XSDConcreteComponent parent, boolean isReference) - { - super(label); - this.parent = parent; - this.isReference = isReference; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.gef.commands.Command#execute() - */ - public void execute() - { - if (!isReference) - { - XSDModelGroupDefinition def= createXSDModelGroupDefinition(); - addedXSDConcreteComponent = def; - } - else - { - XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory(); - XSDModelGroupDefinition def = factory.createXSDModelGroupDefinition(); - XSDParticle particle = XSDFactory.eINSTANCE.createXSDParticle(); - particle.setContent(def); - List list = parent.getSchema().getModelGroupDefinitions(); - if (list.size() > 0) - { - def.setResolvedModelGroupDefinition((XSDModelGroupDefinition) list.get(0)); - } - else - { - XSDModelGroupDefinition newGroupDef = createXSDModelGroupDefinition(); - def.setResolvedModelGroupDefinition(newGroupDef); - } - - if (parent instanceof XSDModelGroup) - { - ((XSDModelGroup) parent).getContents().add(particle); - } - formatChild(def.getElement()); - addedXSDConcreteComponent = def; - } - } - - protected XSDModelGroupDefinition createXSDModelGroupDefinition() - { - XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory(); - XSDModelGroupDefinition def = factory.createXSDModelGroupDefinition(); - List list = parent.getSchema().getModelGroupDefinitions(); - String newName = XSDCommonUIUtils.createUniqueElementName("ModelGroupDefinition", list); - def.setName(newName); - - XSDModelGroup modelGroup = createModelGroup(); - def.setModelGroup(modelGroup); - Text textNode = parent.getSchema().getDocument().createTextNode("\n"); - parent.getSchema().getElement().appendChild(textNode); - parent.getSchema().getContents().add(def); - formatChild(def.getElement()); - return def; - } - - protected XSDModelGroup createModelGroup() - { - XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory(); - XSDParticle particle = factory.createXSDParticle(); - XSDModelGroup modelGroup = factory.createXSDModelGroup(); - modelGroup.setCompositor(XSDCompositor.SEQUENCE_LITERAL); - particle.setContent(modelGroup); - - return modelGroup; - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDRedefineCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDRedefineCommand.java deleted file mode 100644 index 922698a322..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDRedefineCommand.java +++ /dev/null @@ -1,34 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDRedefine; -import org.eclipse.xsd.XSDSchema; - -public class AddXSDRedefineCommand extends AddXSDSchemaDirectiveCommand -{ - public AddXSDRedefineCommand(String label, XSDSchema schema) - { - super(label); - this.xsdSchema = schema; - } - - public void execute() - { - XSDRedefine xsdRedefine = XSDFactory.eINSTANCE.createXSDRedefine(); - xsdRedefine.setSchemaLocation(""); - xsdSchema.getContents().add(findNextPositionToInsert(), xsdRedefine); - addedXSDConcreteComponent = xsdRedefine; - formatChild(xsdSchema.getElement()); - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDSchemaDirectiveCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDSchemaDirectiveCommand.java deleted file mode 100644 index feb51d0ff5..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDSchemaDirectiveCommand.java +++ /dev/null @@ -1,56 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import java.util.Iterator; - -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDSchemaDirective; - -public abstract class AddXSDSchemaDirectiveCommand extends BaseCommand -{ - protected XSDSchema xsdSchema; - - public AddXSDSchemaDirectiveCommand(String label) - { - super(label); - } - - public void undo() - { - super.undo(); - } - - protected boolean adopt(XSDConcreteComponent model) - { - return false; - } - - protected int findNextPositionToInsert() - { - int index = 0; - for (Iterator i = xsdSchema.getContents().iterator(); i.hasNext(); ) - { - Object o = i.next(); - if (o instanceof XSDSchemaDirective) - { - index ++; - } - else - { - break; - } - } - return index; - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDSimpleTypeDefinitionCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDSimpleTypeDefinitionCommand.java deleted file mode 100644 index b8e66b7cdf..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/AddXSDSimpleTypeDefinitionCommand.java +++ /dev/null @@ -1,76 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.util.XSDConstants; -import org.w3c.dom.Text; - -public final class AddXSDSimpleTypeDefinitionCommand extends BaseCommand -{ - XSDConcreteComponent parent; - XSDSimpleTypeDefinition createdSimpleType; - private String nameToAdd; - - public AddXSDSimpleTypeDefinitionCommand(String label, XSDConcreteComponent parent) - { - super(label); - this.parent = parent; - } - - public void setNameToAdd(String nameToAdd) - { - this.nameToAdd = nameToAdd; - } - - public void execute() - { - XSDSimpleTypeDefinition typeDef = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition(); - typeDef.setBaseTypeDefinition(parent.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, "string")); - - if (parent instanceof XSDSchema) - { - typeDef.setName(XSDCommonUIUtils.createUniqueElementName(nameToAdd == null ? "XSDSimpleType" : nameToAdd, ((XSDSchema) parent).getTypeDefinitions())); - createdSimpleType = typeDef; - try - { - XSDSchema xsdSchema = (XSDSchema)parent; - Text textNode = xsdSchema.getDocument().createTextNode("\n"); - xsdSchema.getElement().appendChild(textNode); - xsdSchema.getContents().add(typeDef); - } - catch (Exception e) - { - - } - } - else if (parent instanceof XSDElementDeclaration) - { - ((XSDElementDeclaration) parent).setAnonymousTypeDefinition(typeDef); - } - else if (parent instanceof XSDAttributeDeclaration) - { - ((XSDAttributeDeclaration) parent).setAnonymousTypeDefinition(typeDef); - } - formatChild(createdSimpleType.getElement()); - } - - public XSDSimpleTypeDefinition getCreatedSimpleType() - { - return createdSimpleType; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/BaseCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/BaseCommand.java deleted file mode 100644 index db8ef70f4f..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/BaseCommand.java +++ /dev/null @@ -1,61 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.gef.commands.Command; -import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML; -import org.eclipse.xsd.XSDConcreteComponent; -import org.w3c.dom.Element; - -public class BaseCommand extends Command -{ - XSDConcreteComponent addedXSDConcreteComponent; - - public BaseCommand() - { - super(); - } - - public BaseCommand(String label) - { - super(label); - } - - public XSDConcreteComponent getAddedComponent() - { - return addedXSDConcreteComponent; - } - - protected void formatChild(Element child) - { - if (child instanceof IDOMNode) - { - IDOMModel model = ((IDOMNode)child).getModel(); - try - { - // tell the model that we are about to make a big model change - model.aboutToChangeModel(); - - IStructuredFormatProcessor formatProcessor = new FormatProcessorXML(); - formatProcessor.formatNode(child); - } - finally - { - // tell the model that we are done with the big model change - model.changedModel(); - } - } - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/ChangeToLocalSimpleTypeCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/ChangeToLocalSimpleTypeCommand.java deleted file mode 100644 index 0ff97e5992..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/ChangeToLocalSimpleTypeCommand.java +++ /dev/null @@ -1,71 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDFeature; -import org.eclipse.xsd.XSDSimpleTypeDefinition; - -public class ChangeToLocalSimpleTypeCommand extends BaseCommand -{ - XSDFeature parent; - XSDSimpleTypeDefinition anonymousSimpleType; - XSDSimpleTypeDefinition currentType; - - public ChangeToLocalSimpleTypeCommand(String label, XSDFeature parent) - { - super(label); - this.parent = parent; - -// if (parent instanceof XSDElementDeclaration) -// { -// XSDElementDeclaration element = (XSDElementDeclaration) parent; -// XSDTypeDefinition aType = element.getResolvedElementDeclaration().getTypeDefinition(); -// -// if (aType instanceof XSDSimpleTypeDefinition) -// { -// currentType = (XSDSimpleTypeDefinition) aType; -// } -// } - } - - public void execute() - { -// anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition(); -// anonymousSimpleType.setBaseTypeDefinition(currentType); - if (parent instanceof XSDElementDeclaration) - { - ((XSDElementDeclaration)parent).setAnonymousTypeDefinition(anonymousSimpleType); - } - else if (parent instanceof XSDAttributeDeclaration) - { - ((XSDAttributeDeclaration)parent).setAnonymousTypeDefinition(anonymousSimpleType); - } - formatChild(parent.getElement()); - } - - public void setAnonymousSimpleType(XSDSimpleTypeDefinition anonymousSimpleType) - { - this.anonymousSimpleType = anonymousSimpleType; - } - - public XSDSimpleTypeDefinition getAnonymousType() - { - if (anonymousSimpleType == null) - { - anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition(); - anonymousSimpleType.setBaseTypeDefinition(currentType); - } - return anonymousSimpleType; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/DeleteCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/DeleteCommand.java deleted file mode 100644 index 724bdcf65c..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/DeleteCommand.java +++ /dev/null @@ -1,120 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDVisitor; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDAttributeGroupDefinition; -import org.eclipse.xsd.XSDAttributeUse; -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDEnumerationFacet; -import org.eclipse.xsd.XSDModelGroup; -import org.eclipse.xsd.XSDModelGroupDefinition; -import org.eclipse.xsd.XSDParticle; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDSimpleTypeDefinition; - -public class DeleteCommand extends BaseCommand -{ - XSDConcreteComponent target; - - public DeleteCommand(String label, XSDConcreteComponent target) - { - super(label); - this.target = target; - } - - public void execute() - { - XSDVisitor visitor = new XSDVisitor() - { - public void visitElementDeclaration(org.eclipse.xsd.XSDElementDeclaration element) - { - if (element.getTypeDefinition() == target) - { - XSDSimpleTypeDefinition type = target.getSchema().getSchemaForSchema().resolveSimpleTypeDefinition("string"); - element.setTypeDefinition(type); - } - super.visitElementDeclaration(element); - } - }; - - XSDConcreteComponent parent = target.getContainer(); - - if (target instanceof XSDModelGroup || target instanceof XSDElementDeclaration || target instanceof XSDModelGroupDefinition) - { - if (parent instanceof XSDParticle) - { - if (parent.getContainer() instanceof XSDModelGroup) - { - XSDModelGroup modelGroup = (XSDModelGroup) ((XSDParticle) parent).getContainer(); - - modelGroup.getContents().remove(parent); - } - } - else if (parent instanceof XSDSchema) - { - visitor.visitSchema(target.getSchema()); - ((XSDSchema) parent).getContents().remove(target); - } - - } - else if (target instanceof XSDAttributeDeclaration) - { - if (parent instanceof XSDAttributeUse) - { - EObject obj = parent.eContainer(); - XSDComplexTypeDefinition complexType = null; - while (obj != null) - { - if (obj instanceof XSDComplexTypeDefinition) - { - complexType = (XSDComplexTypeDefinition) obj; - break; - } - obj = obj.eContainer(); - } - if (complexType != null) - { - complexType.getAttributeContents().remove((XSDAttributeUse) parent); - } - - if (parent.getContainer() instanceof XSDAttributeGroupDefinition) - { - XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition) parent.getContainer(); - - attrGroup.getContents().remove(parent); - } - } - } - else if (target instanceof XSDAttributeGroupDefinition && - parent instanceof XSDComplexTypeDefinition) - { - ((XSDComplexTypeDefinition)parent).getAttributeContents().remove(target); - } - else if (target instanceof XSDEnumerationFacet) - { - XSDEnumerationFacet enumerationFacet = (XSDEnumerationFacet)target; - enumerationFacet.getSimpleTypeDefinition().getFacetContents().remove(enumerationFacet); - } - else - { - if (parent instanceof XSDSchema) - { - visitor.visitSchema(target.getSchema()); - ((XSDSchema) parent).getContents().remove(target); - } - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionAttributerCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionAttributerCommand.java deleted file mode 100644 index 74f37d6fd7..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionAttributerCommand.java +++ /dev/null @@ -1,40 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.gef.commands.Command; -import org.w3c.dom.Attr; -import org.w3c.dom.Element; - -public class RemoveExtensionAttributerCommand extends Command -{ - Element hostElement; - Attr attr; - - public RemoveExtensionAttributerCommand(String label, Element hostElement, Attr attr) - { - super(label); - this.hostElement = hostElement; - this.attr = attr; - } - - public void execute() - { - super.execute(); - hostElement.removeAttributeNode(attr); - } - - public void undo() - { - super.undo(); - //TODO implement me - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionElementCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionElementCommand.java deleted file mode 100644 index c89db27a31..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/RemoveExtensionElementCommand.java +++ /dev/null @@ -1,43 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.gef.commands.Command; -import org.eclipse.xsd.XSDAnnotation; -import org.w3c.dom.Node; - -public class RemoveExtensionElementCommand extends Command -{ - XSDAnnotation xsdAnnotation; - Node appInfo; - - public RemoveExtensionElementCommand(String label, XSDAnnotation xsdAnnotation, Node appInfo) - { - super(label); - this.xsdAnnotation = xsdAnnotation; - this.appInfo = appInfo; - } - - public void execute() - { - super.execute(); - xsdAnnotation.getApplicationInformation().remove(appInfo); - xsdAnnotation.getElement().removeChild(appInfo); - xsdAnnotation.updateElement(); - } - - public void undo() - { - super.undo(); - xsdAnnotation.getApplicationInformation().add(appInfo); - xsdAnnotation.getElement().appendChild(appInfo); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetMultiplicityCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetMultiplicityCommand.java deleted file mode 100644 index 5fa03f5c97..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetMultiplicityCommand.java +++ /dev/null @@ -1,62 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDParticle; -import org.eclipse.xsd.XSDParticleContent; - -public class SetMultiplicityCommand extends BaseCommand -{ - XSDConcreteComponent parent; - int maxOccurs, minOccurs; - - /** - * @param parent - */ - public SetMultiplicityCommand(String label) - { - super(label); - } - - public void setMaxOccurs(int i) - { - maxOccurs=i; - } - - public void setMinOccurs(int i) - { - minOccurs=i; - } - - public void setXSDConcreteComponent(XSDConcreteComponent parent) - { - this.parent = parent; - } - - /* (non-Javadoc) - * @see org.eclipse.wst.xsd.ui.internal.commands.AbstractCommand#run() - */ - public void execute() - { - if (parent instanceof XSDParticleContent) - { - XSDParticleContent xsdParticleContent = (XSDParticleContent)parent; - XSDParticle xsdParticle = (XSDParticle)xsdParticleContent.getContainer(); - if (maxOccurs < 0) - { - maxOccurs = XSDParticle.UNBOUNDED; - } - xsdParticle.setMaxOccurs(maxOccurs); - xsdParticle.setMinOccurs(minOccurs); - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetTypeCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetTypeCommand.java deleted file mode 100644 index 811e68f707..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetTypeCommand.java +++ /dev/null @@ -1,109 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.jface.window.Window; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; -import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.adt.edit.ComponentReferenceEditManager; -import org.eclipse.wst.xsd.ui.internal.adt.edit.IComponentDialog; -import org.eclipse.wst.xsd.ui.internal.common.actions.SetTypeAction; -import org.eclipse.wst.xsd.ui.internal.editor.XSDTypeReferenceEditManager; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; - -public class SetTypeCommand extends BaseCommand -{ - XSDConcreteComponent parent; - private boolean continueApply; - XSDBaseAdapter adapter; - String action; - - public SetTypeCommand(String label, String ID, XSDConcreteComponent parent) - { - super(label); - this.parent = parent; - this.action = ID; - } - - public void setAdapter(XSDBaseAdapter adapter) - { - this.adapter = adapter; - } - - public void execute() - { - ComponentReferenceEditManager componentReferenceEditManager = getComponentReferenceEditManager(); - continueApply = true; - if (parent instanceof XSDElementDeclaration) - { - if (action.equals(SetTypeAction.SET_NEW_TYPE_ID)) - { - ComponentSpecification newValue = (ComponentSpecification)invokeDialog(componentReferenceEditManager.getNewDialog()); - if (continueApply) - componentReferenceEditManager.modifyComponentReference(adapter, newValue); - } - else - { - ComponentSpecification newValue = (ComponentSpecification)invokeDialog(componentReferenceEditManager.getBrowseDialog()); - if (continueApply) - componentReferenceEditManager.modifyComponentReference(adapter, newValue); - } - formatChild(parent.getElement()); - } - - } - - private Object invokeDialog(IComponentDialog dialog) - { - Object newValue = null; - - if (dialog == null) - { - return null; - } - - if (dialog.createAndOpen() == Window.OK) - { - newValue = dialog.getSelectedComponent(); - } - else - { - continueApply = false; - } - - return newValue; - } - - protected ComponentReferenceEditManager getComponentReferenceEditManager() - { - ComponentReferenceEditManager result = null; - IEditorPart editor = getActiveEditor(); - if (editor != null) - { - result = (ComponentReferenceEditManager)editor.getAdapter(XSDTypeReferenceEditManager.class); - } - return result; - } - - private IEditorPart getActiveEditor() - { - IWorkbench workbench = PlatformUI.getWorkbench(); - IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); - IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor(); - return editorPart; - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetXSDFacetValueCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetXSDFacetValueCommand.java deleted file mode 100644 index 7948e6a276..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/SetXSDFacetValueCommand.java +++ /dev/null @@ -1,35 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.xsd.XSDFacet; - -public class SetXSDFacetValueCommand extends BaseCommand -{ - protected XSDFacet facet; - protected String value; - - public SetXSDFacetValueCommand(String label, XSDFacet facet) - { - super(label); - this.facet = facet; - } - - public void setValue(String value) - { - this.value = value; - } - - public void execute() - { - facet.setLexicalValue(value); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateAttributeValueCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateAttributeValueCommand.java deleted file mode 100644 index b93bb579f2..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateAttributeValueCommand.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.gef.commands.Command; -import org.w3c.dom.Element; - -/* - * This command is used from the extension view to edit extension elements - * and attributes which are implemented as DOM objects (not part of the EMF model) - */ -public class UpdateAttributeValueCommand extends Command -{ - Element element; - String attributeName; - String attributeValue; - - public UpdateAttributeValueCommand(Element element, String attributeName, String attributeValue) - { - this.element = element; - this.attributeName = attributeName; - this.attributeValue = attributeValue; - } - - - public void execute() - { - element.setAttribute(attributeName, attributeValue); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateComponentReferenceAndManageDirectivesCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateComponentReferenceAndManageDirectivesCommand.java deleted file mode 100644 index f38cda60dd..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateComponentReferenceAndManageDirectivesCommand.java +++ /dev/null @@ -1,26 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.core.resources.IFile; -import org.eclipse.gef.commands.Command; -import org.eclipse.xsd.XSDComponent; -import org.eclipse.xsd.XSDConcreteComponent; - -public abstract class UpdateComponentReferenceAndManageDirectivesCommand extends Command{ - protected XSDConcreteComponent concreteComponent; - protected String componentName; - protected String componentNamespace; - protected IFile file; - - public UpdateComponentReferenceAndManageDirectivesCommand(XSDConcreteComponent concreteComponent, String componentName, String componentNamespace, IFile file) - { - this.concreteComponent = concreteComponent; - this.componentName = componentName; - this.componentNamespace = componentNamespace; - this.file = file; - } - - protected abstract XSDComponent computeComponent(); - - public abstract void execute() ; - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateContentModelCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateContentModelCommand.java deleted file mode 100644 index 2192e5a372..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateContentModelCommand.java +++ /dev/null @@ -1,43 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.gef.commands.Command; -import org.eclipse.xsd.XSDCompositor; -import org.eclipse.xsd.XSDModelGroup; - -public class UpdateContentModelCommand extends Command -{ - XSDModelGroup xsdModelGroup; - XSDCompositor oldXSDCompositor, newXSDCompositor; - - - public UpdateContentModelCommand(String label, XSDModelGroup xsdModelGroup, XSDCompositor xsdCompositor) - { - super(label); - this.xsdModelGroup = xsdModelGroup; - this.newXSDCompositor = xsdCompositor; - this.oldXSDCompositor = xsdModelGroup.getCompositor(); - } - - - public void execute() - { - super.execute(); - xsdModelGroup.setCompositor(newXSDCompositor); - - } - - public void undo() - { - xsdModelGroup.setCompositor(oldXSDCompositor); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateElementReferenceAndManageDirectivesCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateElementReferenceAndManageDirectivesCommand.java deleted file mode 100644 index 9313fcbcff..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateElementReferenceAndManageDirectivesCommand.java +++ /dev/null @@ -1,133 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.core.resources.IFile; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.xsd.XSDComponent; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDImport; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDSchemaDirective; -import org.eclipse.xsd.util.XSDResourceImpl; - -public class UpdateElementReferenceAndManageDirectivesCommand extends -UpdateComponentReferenceAndManageDirectivesCommand{ - - public UpdateElementReferenceAndManageDirectivesCommand(XSDConcreteComponent concreteComponent, - String componentName, String componentNamespace, IFile file) - { - super(concreteComponent, componentName, componentNamespace, file); - } - - protected XSDComponent computeComponent() - { - XSDElementDeclaration result = null; - XSDSchema schema = concreteComponent.getSchema(); - XSDSchemaDirective directive = null; - - // TODO (cs) handle case where namespace==null - // - if (componentNamespace != null) - { - - // lets see if the element is already visible to our schema - result = getDefinedComponent(schema, componentName, componentNamespace); - if (result == null) - { - // TODO (cs) we need to provide a separate command to do this part - // - // apparently the element is not yet visible, we need to add includes/imports to get to it - if (componentNamespace.equals(schema.getTargetNamespace())) - { - // we need to add an include - directive =XSDFactory.eINSTANCE.createXSDInclude(); - } - else - { - // we need to add an import - XSDImport xsdImport = XSDFactory.eINSTANCE.createXSDImport(); - xsdImport.setNamespace(componentNamespace); - directive = xsdImport; - } - - // TODO (cs) we need to compute a relative URI to make this nicer! - // - String fileURI = file.getLocationURI().toString(); - if (fileURI.startsWith("file:/") && !fileURI.startsWith("file:///")) - { - fileURI = "file:///" + fileURI.substring(6); - } - directive.setSchemaLocation(fileURI); - - // TODO (cs) we should at the directive 'next' in the list of directives - // for now I'm just adding as the first thing in the schema :-( - // - schema.getContents().add(0, directive); - XSDSchema resolvedSchema = directive.getResolvedSchema(); - - if (resolvedSchema == null) - { - Resource resource = concreteComponent.eResource().getResourceSet().createResource(URI.createURI(fileURI)); - if (resource instanceof XSDResourceImpl) - { - try - { - resource.load(null); - XSDResourceImpl resourceImpl = (XSDResourceImpl)resource; - resolvedSchema = resourceImpl.getSchema(); - if (resolvedSchema != null) - { - directive.setResolvedSchema(resolvedSchema); - } - } - catch (Exception e) - { - - } - } - } - if (resolvedSchema != null) - { - result = getDefinedComponent(resolvedSchema, componentName, componentNamespace); - } - else - { - // TODO (cs) consider setting some error state so that the client can provide a pop-dialog error - // we should also remove the import/include so save from cluttering the file with bogus directives - } - } - } - return result; - } - - private XSDElementDeclaration getDefinedComponent(XSDSchema schema, - String componentName, String componentNamespace) { - XSDElementDeclaration result = schema.resolveElementDeclaration(componentNamespace, componentName); - if (result.eContainer() == null) - { - result = null; - } - return result; - } - - public void execute() { - try - { - XSDComponent elementDef = computeComponent(); - if (elementDef != null) - { - UpdateElementReferenceCommand command = new UpdateElementReferenceCommand( - "Update Element Reference", (XSDElementDeclaration) concreteComponent, - (XSDElementDeclaration) elementDef); - command.execute(); - } - } - catch (Exception e) - { - e.printStackTrace(); - } - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateElementReferenceCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateElementReferenceCommand.java deleted file mode 100644 index e747603048..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateElementReferenceCommand.java +++ /dev/null @@ -1,31 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.xsd.XSDElementDeclaration; - -public class UpdateElementReferenceCommand extends BaseCommand -{ - XSDElementDeclaration element, ref; - - public UpdateElementReferenceCommand(String label, XSDElementDeclaration element, XSDElementDeclaration ref) - { - super(label); - this.element = element; - this.ref = ref; - } - - public void execute() - { - element.setResolvedElementDeclaration(ref); - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateMaxOccursCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateMaxOccursCommand.java deleted file mode 100644 index b8300d12a8..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateMaxOccursCommand.java +++ /dev/null @@ -1,58 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.gef.commands.Command; -import org.eclipse.xsd.XSDParticle; -import org.eclipse.xsd.util.XSDConstants; -import org.w3c.dom.Element; - -public class UpdateMaxOccursCommand extends Command -{ - private int oldMaxOccurs; - private int newMaxOccurs; - private boolean removeMaxOccursAttribute; - - XSDParticle particle; - - public UpdateMaxOccursCommand(String label, XSDParticle particle, int MaxOccurs) - { - super(label); - this.newMaxOccurs = MaxOccurs; - this.particle = particle; - } - - public void execute() - { - Element element = particle.getElement(); - String currentMax = element.getAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE); - removeMaxOccursAttribute = (currentMax == null)? true: false; - oldMaxOccurs = particle.getMaxOccurs(); - particle.setMaxOccurs(newMaxOccurs); - } - - public void redo() - { - execute(); - } - - public void undo() - { - if (removeMaxOccursAttribute) - { - particle.unsetMaxOccurs(); - } - else - { - particle.setMaxOccurs(oldMaxOccurs); - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateMinOccursCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateMinOccursCommand.java deleted file mode 100644 index 1db2a20fd3..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateMinOccursCommand.java +++ /dev/null @@ -1,86 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.gef.commands.Command; -import org.eclipse.xsd.XSDAttributeUse; -import org.eclipse.xsd.XSDAttributeUseCategory; -import org.eclipse.xsd.XSDComponent; -import org.eclipse.xsd.XSDParticle; -import org.eclipse.xsd.util.XSDConstants; -import org.w3c.dom.Element; - -public class UpdateMinOccursCommand extends Command -{ - private int oldMinOccurs; - private int newMinOccurs; - private boolean removeMinOccursAttribute; - - XSDComponent component; - - public UpdateMinOccursCommand(String label, XSDComponent component, int minOccurs) - { - super(label); - this.newMinOccurs = minOccurs; - this.component = component; - } - - public void execute() - { - - Element element = component.getElement(); - String currentMin = element.getAttribute(XSDConstants.MINOCCURS_ATTRIBUTE); - removeMinOccursAttribute = (currentMin == null) ? true : false; - - if (component instanceof XSDParticle) - { - oldMinOccurs = ((XSDParticle) component).getMinOccurs(); - ((XSDParticle) component).setMinOccurs(newMinOccurs); - } - else if (component instanceof XSDAttributeUse) - { - oldMinOccurs = (((XSDAttributeUse) component).getUse() == XSDAttributeUseCategory.REQUIRED_LITERAL ? 1 : 0); - if (newMinOccurs == 1) - ((XSDAttributeUse) component).setUse(XSDAttributeUseCategory.REQUIRED_LITERAL); - else - ((XSDAttributeUse) component).setUse(XSDAttributeUseCategory.OPTIONAL_LITERAL); - } - } - - public void undo() - { - if (component instanceof XSDParticle) - { - if (removeMinOccursAttribute) - { - ((XSDParticle) component).unsetMinOccurs(); - } - else - { - ((XSDParticle) component).setMinOccurs(oldMinOccurs); - } - } - else if (component instanceof XSDAttributeUse) - { - if (removeMinOccursAttribute) - { - ((XSDParticle) component).unsetMinOccurs(); - } - else - { - if (oldMinOccurs == 1) - ((XSDAttributeUse) component).setUse(XSDAttributeUseCategory.REQUIRED_LITERAL); - else - ((XSDAttributeUse) component).setUse(XSDAttributeUseCategory.OPTIONAL_LITERAL); - } - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNameCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNameCommand.java deleted file mode 100644 index fea569655e..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNameCommand.java +++ /dev/null @@ -1,46 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.gef.commands.Command; -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDNamedComponent; - -public class UpdateNameCommand extends Command -{ - private String oldName; - private String newName; - private XSDNamedComponent component; - - public UpdateNameCommand(String label, XSDNamedComponent component, String newName) - { - super(label); - - if (component instanceof XSDComplexTypeDefinition && component.getName() == null && component.eContainer() instanceof XSDNamedComponent && ((XSDNamedComponent) component.eContainer()).getName() != null) - { - component = (XSDNamedComponent) component.eContainer(); - } - - this.component = component; - this.newName = newName; - this.oldName = component.getName(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.gef.commands.Command#execute() - */ - public void execute() - { - component.setName(newName); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNumericBoundsFacetCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNumericBoundsFacetCommand.java deleted file mode 100644 index 1d02a3d0af..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateNumericBoundsFacetCommand.java +++ /dev/null @@ -1,157 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDMaxExclusiveFacet; -import org.eclipse.xsd.XSDMaxInclusiveFacet; -import org.eclipse.xsd.XSDMinExclusiveFacet; -import org.eclipse.xsd.XSDMinInclusiveFacet; -import org.eclipse.xsd.XSDSimpleTypeDefinition; - -public class UpdateNumericBoundsFacetCommand extends BaseCommand -{ - XSDSimpleTypeDefinition xsdSimpleType; - String max, min; - boolean includeMin, includeMax; - private boolean doUpdateMax = false, doUpdateMin = false; - XSDMinInclusiveFacet minInclusiveFacet; - XSDMinExclusiveFacet minExclusiveFacet; - XSDMaxInclusiveFacet maxInclusiveFacet; - XSDMaxExclusiveFacet maxExclusiveFacet; - - - public UpdateNumericBoundsFacetCommand(String label, XSDSimpleTypeDefinition xsdSimpleType, boolean includeMin, boolean includeMax) - { - super(label); - this.xsdSimpleType = xsdSimpleType; - this.includeMin = includeMin; - this.includeMax = includeMax; - - minInclusiveFacet = xsdSimpleType.getMinInclusiveFacet(); - minExclusiveFacet = xsdSimpleType.getMinExclusiveFacet(); - maxInclusiveFacet = xsdSimpleType.getMaxInclusiveFacet(); - maxExclusiveFacet = xsdSimpleType.getMaxExclusiveFacet(); - - } - - public void setMin(String min) - { - this.min = min; - doUpdateMin = true; - } - - public void setMax(String max) - { - this.max = max; - doUpdateMax = true; - } - - public void execute() - { - if (doUpdateMin) - { - if (includeMin) - { - if (minInclusiveFacet == null && min != null) - { - minInclusiveFacet = XSDFactory.eINSTANCE.createXSDMinInclusiveFacet(); - minInclusiveFacet.setLexicalValue(min); - xsdSimpleType.getFacetContents().add(minInclusiveFacet); - - if (minExclusiveFacet != null) - { - xsdSimpleType.getFacetContents().remove(minExclusiveFacet); - } - } - else if (minInclusiveFacet != null && min != null) - { - minInclusiveFacet.setLexicalValue(min); - } - else if (minInclusiveFacet != null && min == null) - { - xsdSimpleType.getFacetContents().remove(minInclusiveFacet); - } - } - else // !includeMin - { - if (minExclusiveFacet == null && min != null) - { - minExclusiveFacet = XSDFactory.eINSTANCE.createXSDMinExclusiveFacet(); - minExclusiveFacet.setLexicalValue(min); - xsdSimpleType.getFacetContents().add(minExclusiveFacet); - - if (minInclusiveFacet != null) - { - xsdSimpleType.getFacetContents().remove(minInclusiveFacet); - } - } - else if (minExclusiveFacet != null && min != null) - { - minExclusiveFacet.setLexicalValue(min); - } - else if (minExclusiveFacet != null && min == null) - { - xsdSimpleType.getFacetContents().remove(minExclusiveFacet); - } - } - } - else if (doUpdateMax) - { - if (includeMax) - { - if (maxInclusiveFacet == null && max != null) - { - maxInclusiveFacet = XSDFactory.eINSTANCE.createXSDMaxInclusiveFacet(); - maxInclusiveFacet.setLexicalValue(max); - xsdSimpleType.getFacetContents().add(maxInclusiveFacet); - - if (maxExclusiveFacet != null) - { - xsdSimpleType.getFacetContents().remove(maxExclusiveFacet); - } - } - else if (maxInclusiveFacet != null && max != null) - { - maxInclusiveFacet.setLexicalValue(max); - } - else if (maxInclusiveFacet != null && max == null) - { - xsdSimpleType.getFacetContents().remove(maxInclusiveFacet); - } - } - else // !includeMax - { - if (maxExclusiveFacet == null && max != null) - { - maxExclusiveFacet = XSDFactory.eINSTANCE.createXSDMaxExclusiveFacet(); - maxExclusiveFacet.setLexicalValue(max); - xsdSimpleType.getFacetContents().add(maxExclusiveFacet); - - if (maxInclusiveFacet != null) - { - xsdSimpleType.getFacetContents().remove(maxInclusiveFacet); - } - } - else if (maxExclusiveFacet != null && max != null) - { - maxExclusiveFacet.setLexicalValue(max); - } - else if (maxExclusiveFacet != null && max == null) - { - xsdSimpleType.getFacetContents().remove(maxExclusiveFacet); - } - } - } - - formatChild(xsdSimpleType.getElement()); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateStringLengthFacetCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateStringLengthFacetCommand.java deleted file mode 100644 index 9b546b333f..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateStringLengthFacetCommand.java +++ /dev/null @@ -1,223 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDLengthFacet; -import org.eclipse.xsd.XSDMaxLengthFacet; -import org.eclipse.xsd.XSDMinLengthFacet; -import org.eclipse.xsd.XSDSimpleTypeDefinition; - -public class UpdateStringLengthFacetCommand extends BaseCommand -{ - XSDSimpleTypeDefinition xsdSimpleType; - String max, min; - private boolean doUpdateMax = false, doUpdateMin = false; - - public UpdateStringLengthFacetCommand(String label, XSDSimpleTypeDefinition xsdSimpleType) - { - super(label); - this.xsdSimpleType = xsdSimpleType; - } - - public void setMin(String min) - { - this.min = min; - doUpdateMin = true; - } - - public void setMax(String max) - { - this.max = max; - doUpdateMax = true; - } - - public void execute() - { - XSDLengthFacet lengthFacet = xsdSimpleType.getEffectiveLengthFacet(); - XSDMinLengthFacet minLengthFacet = xsdSimpleType.getEffectiveMinLengthFacet(); - XSDMaxLengthFacet maxLengthFacet = xsdSimpleType.getEffectiveMaxLengthFacet(); - - String currentLength = null, currentMin = null, currentMax = null; - if (lengthFacet != null) - { - currentLength = lengthFacet.getLexicalValue(); - } - if (minLengthFacet != null) - { - currentMin = minLengthFacet.getLexicalValue(); - } - if (maxLengthFacet != null) - { - currentMax = maxLengthFacet.getLexicalValue(); - } - - if (doUpdateMax && !doUpdateMin) - { - if (maxLengthFacet != null) - { - if (max != null) - { - if (max.equals(currentMin)) - { - lengthFacet = XSDFactory.eINSTANCE.createXSDLengthFacet(); - lengthFacet.setLexicalValue(max); - xsdSimpleType.getFacetContents().add(lengthFacet); - xsdSimpleType.getFacetContents().remove(maxLengthFacet); - xsdSimpleType.getFacetContents().remove(minLengthFacet); - } - else - { - if (lengthFacet != null) - { - xsdSimpleType.getFacetContents().remove(lengthFacet); - } - if (minLengthFacet == null && currentLength != null) - { - minLengthFacet = XSDFactory.eINSTANCE.createXSDMinLengthFacet(); - minLengthFacet.setLexicalValue(currentLength); - xsdSimpleType.getFacetContents().add(minLengthFacet); - } - maxLengthFacet.setLexicalValue(max); - } - } - else - { - xsdSimpleType.getFacetContents().remove(maxLengthFacet); - } - } - else - { - if (currentMin != null && currentMin.equals(max)) - { - if (lengthFacet == null) - { - lengthFacet = XSDFactory.eINSTANCE.createXSDLengthFacet(); - xsdSimpleType.getFacetContents().add(lengthFacet); - } - lengthFacet.setLexicalValue(max); - xsdSimpleType.getFacetContents().remove(minLengthFacet); - } - else if (currentLength != null && !currentLength.equals(max)) - { - xsdSimpleType.getFacetContents().remove(lengthFacet); - - if (max != null) - { - maxLengthFacet = XSDFactory.eINSTANCE.createXSDMaxLengthFacet(); - maxLengthFacet.setLexicalValue(max); - xsdSimpleType.getFacetContents().add(maxLengthFacet); - } - - minLengthFacet = XSDFactory.eINSTANCE.createXSDMinLengthFacet(); - minLengthFacet.setLexicalValue(currentLength); - xsdSimpleType.getFacetContents().add(minLengthFacet); - } - else - { - if (lengthFacet != null) - { - xsdSimpleType.getFacetContents().remove(lengthFacet); - - minLengthFacet = XSDFactory.eINSTANCE.createXSDMinLengthFacet(); - minLengthFacet.setLexicalValue(currentLength); - xsdSimpleType.getFacetContents().add(minLengthFacet); - - } - maxLengthFacet = XSDFactory.eINSTANCE.createXSDMaxLengthFacet(); - maxLengthFacet.setLexicalValue(max); - xsdSimpleType.getFacetContents().add(maxLengthFacet); - } - } - } - else if (!doUpdateMax && doUpdateMin) - { - if (minLengthFacet != null) - { - if (min != null) - { - if (min.equals(currentMax)) - { - lengthFacet = XSDFactory.eINSTANCE.createXSDLengthFacet(); - lengthFacet.setLexicalValue(min); - xsdSimpleType.getFacetContents().add(lengthFacet); - xsdSimpleType.getFacetContents().remove(maxLengthFacet); - xsdSimpleType.getFacetContents().remove(minLengthFacet); - } - else - { - if (lengthFacet != null) - { - xsdSimpleType.getFacetContents().remove(lengthFacet); - } - if (maxLengthFacet == null && currentLength != null) - { - maxLengthFacet = XSDFactory.eINSTANCE.createXSDMaxLengthFacet(); - maxLengthFacet.setLexicalValue(currentLength); - xsdSimpleType.getFacetContents().add(maxLengthFacet); - } - minLengthFacet.setLexicalValue(min); - } - } - else - { - xsdSimpleType.getFacetContents().remove(minLengthFacet); - } - } - else - { - if (currentMax != null && currentMax.equals(min)) - { - if (lengthFacet == null) - { - lengthFacet = XSDFactory.eINSTANCE.createXSDLengthFacet(); - xsdSimpleType.getFacetContents().add(lengthFacet); - } - lengthFacet.setLexicalValue(min); - xsdSimpleType.getFacetContents().remove(maxLengthFacet); - } - else if (currentLength != null && !currentLength.equals(min)) - { - xsdSimpleType.getFacetContents().remove(lengthFacet); - - if (min != null) - { - minLengthFacet = XSDFactory.eINSTANCE.createXSDMinLengthFacet(); - minLengthFacet.setLexicalValue(min); - xsdSimpleType.getFacetContents().add(minLengthFacet); - } - - maxLengthFacet = XSDFactory.eINSTANCE.createXSDMaxLengthFacet(); - maxLengthFacet.setLexicalValue(currentLength); - xsdSimpleType.getFacetContents().add(maxLengthFacet); - } - else - { - minLengthFacet = XSDFactory.eINSTANCE.createXSDMinLengthFacet(); - minLengthFacet.setLexicalValue(min); - xsdSimpleType.getFacetContents().add(minLengthFacet); - - if (lengthFacet != null) - { - xsdSimpleType.getFacetContents().remove(lengthFacet); - - maxLengthFacet = XSDFactory.eINSTANCE.createXSDMaxLengthFacet(); - maxLengthFacet.setLexicalValue(currentLength); - xsdSimpleType.getFacetContents().add(maxLengthFacet); - } - } - } - } - formatChild(xsdSimpleType.getElement()); - - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTypeReferenceAndManageDirectivesCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTypeReferenceAndManageDirectivesCommand.java deleted file mode 100644 index 2ae5aafed4..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTypeReferenceAndManageDirectivesCommand.java +++ /dev/null @@ -1,153 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.core.resources.IFile; -import org.eclipse.emf.common.util.URI; -import org.eclipse.emf.ecore.resource.Resource; -import org.eclipse.xsd.XSDComponent; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDImport; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDSchemaDirective; -import org.eclipse.xsd.XSDTypeDefinition; -import org.eclipse.xsd.util.XSDConstants; -import org.eclipse.xsd.util.XSDResourceImpl; - -public class UpdateTypeReferenceAndManageDirectivesCommand extends UpdateComponentReferenceAndManageDirectivesCommand -{ - - public UpdateTypeReferenceAndManageDirectivesCommand(XSDConcreteComponent concreteComponent, - String componentName, String componentNamespace, IFile file) - { - super(concreteComponent, componentName, componentNamespace, file); - } - - public XSDComponent computeComponent() - { - XSDComponent result = null; - XSDSchema schema = concreteComponent.getSchema(); - XSDSchemaDirective directive = null; - - // TODO (cs) handle case where namespace==null - // - if (componentNamespace != null) - { - if (XSDConstants.isSchemaForSchemaNamespace(componentNamespace)) - { - // this is the easy case, its just a built-in type - // - result = getDefinedComponent(schema, componentName, componentNamespace); - } - else - { - // lets see if the type is already visible to our schema - result = getDefinedComponent(schema, componentName, componentNamespace); - if (result == null) - { - // TODO (cs) we need to provide a separate command to do this part - // TODO (trung) directives in the outline view does not get updated - // apparently the type is not yet visible, we need to add includes/imports to get to it - if (componentNamespace.equals(schema.getTargetNamespace())) - { - // we need to add an include - directive =XSDFactory.eINSTANCE.createXSDInclude(); - } - else - { - // we need to add an import - XSDImport xsdImport = XSDFactory.eINSTANCE.createXSDImport(); - xsdImport.setNamespace(componentNamespace); - directive = xsdImport; - } - - // TODO (cs) we need to compute a relative URI to make this nicer! - // - String fileURI = file.getLocationURI().toString(); - if (fileURI.startsWith("file:/") && !fileURI.startsWith("file:///")) - { - fileURI = "file:///" + fileURI.substring(6); - } - directive.setSchemaLocation(fileURI); - - // TODO (cs) we should at the directive 'next' in the list of directives - // for now I'm just adding as the first thing in the schema :-( - // - schema.getContents().add(0, directive); - XSDSchema resolvedSchema = directive.getResolvedSchema(); - - if (resolvedSchema == null) - { - Resource resource = concreteComponent.eResource().getResourceSet().createResource(URI.createURI(fileURI)); - if (resource instanceof XSDResourceImpl) - { - try - { - resource.load(null); - XSDResourceImpl resourceImpl = (XSDResourceImpl)resource; - resolvedSchema = resourceImpl.getSchema(); - if (resolvedSchema != null) - { - directive.setResolvedSchema(resolvedSchema); - } - } - catch (Exception e) - { - - } - } - } - if (resolvedSchema != null) - { - result = getDefinedComponent(resolvedSchema, componentName, componentNamespace); - } - else - { - // TODO (cs) consider setting some error state so that the client can provide a pop-dialog error - // we should also remove the import/include so save from cluttering the file with bogus directives - } - } - } - } - return result; - } - - - private XSDTypeDefinition getDefinedComponent(XSDSchema schema, String componentName, String componentNamespace) - { - XSDTypeDefinition result = schema.resolveTypeDefinition(componentNamespace, componentName); - if (result.eContainer() == null) - { - result = null; - } - return result; - } - - - public void execute() - { - try - { - XSDComponent td = computeComponent(); - if (td != null && td instanceof XSDTypeDefinition) - { - UpdateTypeReferenceCommand command = new UpdateTypeReferenceCommand( - concreteComponent, (XSDTypeDefinition) td); - command.execute(); - } - } - catch (Exception e) - { - e.printStackTrace(); - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTypeReferenceCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTypeReferenceCommand.java deleted file mode 100644 index b330f8e3ea..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateTypeReferenceCommand.java +++ /dev/null @@ -1,71 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.gef.commands.Command; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDAttributeUse; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.XSDTypeDefinition; - -public class UpdateTypeReferenceCommand extends Command -{ - XSDConcreteComponent concreteComponent; - XSDTypeDefinition newType; - - public UpdateTypeReferenceCommand(XSDConcreteComponent concreteComponent, XSDTypeDefinition newType) - { - this.concreteComponent = concreteComponent; - this.newType = newType; - } - - public void execute() - { - - if (concreteComponent instanceof XSDElementDeclaration) - { - setElementType((XSDElementDeclaration)concreteComponent); - } - else if (concreteComponent instanceof XSDAttributeUse) - { - setAttributeType((XSDAttributeUse)concreteComponent); - } - else if (concreteComponent instanceof XSDAttributeDeclaration) - { - setAttributeType((XSDAttributeDeclaration)concreteComponent); - } - } - - protected void setElementType(XSDElementDeclaration ed) - { - ed = ed.getResolvedElementDeclaration(); - if (ed != null) - { - ed.setTypeDefinition(newType); - } - } - - protected void setAttributeType(XSDAttributeUse attributeUse) - { - setAttributeType(attributeUse.getAttributeDeclaration()); - } - - protected void setAttributeType(XSDAttributeDeclaration ad) - { - ad = ad.getResolvedAttributeDeclaration(); - if (ad != null && newType instanceof XSDSimpleTypeDefinition) - { - ad.setTypeDefinition((XSDSimpleTypeDefinition)newType); - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateXSDPatternFacetCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateXSDPatternFacetCommand.java deleted file mode 100644 index 0f0744d167..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateXSDPatternFacetCommand.java +++ /dev/null @@ -1,68 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.core.runtime.Assert; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDPatternFacet; -import org.eclipse.xsd.XSDSimpleTypeDefinition; - -public class UpdateXSDPatternFacetCommand extends BaseCommand -{ - public static final int ADD = 0; - public static final int DELETE = 1; - public static final int UPDATE = 2; - - XSDSimpleTypeDefinition xsdSimpleTypeDefinition; - String value; - int actionType; - XSDPatternFacet patternToEdit; - - public UpdateXSDPatternFacetCommand(String label, XSDSimpleTypeDefinition xsdSimpleTypeDefinition, int actionType) - { - super(label); - this.xsdSimpleTypeDefinition = xsdSimpleTypeDefinition; - this.actionType = actionType; - - } - - public void setValue(String value) - { - this.value = value; - } - - public void setPatternToEdit(XSDPatternFacet patternToEdit) - { - this.patternToEdit = patternToEdit; - } - - public void execute() - { - if (actionType == ADD) - { - XSDPatternFacet pattern = XSDFactory.eINSTANCE.createXSDPatternFacet(); - pattern.setLexicalValue(value); - xsdSimpleTypeDefinition.getFacetContents().add(pattern); - } - else if (actionType == DELETE) - { - Assert.isNotNull(patternToEdit); - if (xsdSimpleTypeDefinition.getFacetContents().contains(patternToEdit)) - xsdSimpleTypeDefinition.getFacetContents().remove(patternToEdit); - } - else if (actionType == UPDATE) - { - Assert.isNotNull(patternToEdit); - patternToEdit.setLexicalValue(value); - } - formatChild(xsdSimpleTypeDefinition.getElement()); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateXSDWhiteSpaceFacetCommand.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateXSDWhiteSpaceFacetCommand.java deleted file mode 100644 index 36f63073cb..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/commands/UpdateXSDWhiteSpaceFacetCommand.java +++ /dev/null @@ -1,52 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.commands; - -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.XSDWhiteSpace; -import org.eclipse.xsd.XSDWhiteSpaceFacet; - -public class UpdateXSDWhiteSpaceFacetCommand extends BaseCommand -{ - XSDSimpleTypeDefinition xsdSimpleTypeDefinition; - boolean doAddFacet; - - public UpdateXSDWhiteSpaceFacetCommand(String label, XSDSimpleTypeDefinition xsdSimpleType, boolean doAddFacet) - { - super(label); - this.xsdSimpleTypeDefinition = xsdSimpleType; - this.doAddFacet = doAddFacet; - } - - public void execute() - { - XSDWhiteSpaceFacet whitespaceFacet = xsdSimpleTypeDefinition.getWhiteSpaceFacet(); - - if (doAddFacet) - { - if (whitespaceFacet == null) - { - whitespaceFacet = XSDFactory.eINSTANCE.createXSDWhiteSpaceFacet(); - xsdSimpleTypeDefinition.getFacetContents().add(whitespaceFacet); - } - whitespaceFacet.setLexicalValue(XSDWhiteSpace.COLLAPSE_LITERAL.getName()); - } - else - { - if (whitespaceFacet != null) - { - xsdSimpleTypeDefinition.getFacetContents().remove(whitespaceFacet); - } - } - formatChild(xsdSimpleTypeDefinition.getElement()); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/providers/XSDSectionLabelProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/providers/XSDSectionLabelProvider.java deleted file mode 100644 index 860851e5cf..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/providers/XSDSectionLabelProvider.java +++ /dev/null @@ -1,153 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.providers; - -import org.eclipse.jface.util.Assert; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.swt.graphics.Image; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDAdapterFactory; -import org.eclipse.wst.xsd.ui.internal.adapters.XSDBaseAdapter; -import org.eclipse.wst.xsd.ui.internal.adt.outline.ITreeElement; -import org.eclipse.wst.xsd.ui.internal.editor.Messages; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDModelGroupDefinition; -import org.eclipse.xsd.XSDSchema; -import org.w3c.dom.Element; - -public class XSDSectionLabelProvider extends LabelProvider -{ - /** - * - */ - public XSDSectionLabelProvider() - { - super(); - } - - /** - * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) - */ - public Image getImage(Object object) - { - if (object == null || object.equals(StructuredSelection.EMPTY)) - { - return null; - } - Image result = null; - if (object instanceof StructuredSelection) - { - Object selected = ((StructuredSelection) object).getFirstElement(); - - if (selected instanceof XSDConcreteComponent) - { - XSDBaseAdapter adapter = (XSDBaseAdapter)XSDAdapterFactory.getInstance().adapt((XSDConcreteComponent)selected); - if (adapter instanceof ITreeElement) - { - return ((ITreeElement)adapter).getImage(); - } - - } - } - return result; - } - - /** - * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) - */ - public String getText(Object object) - { - if (object == null || object.equals(StructuredSelection.EMPTY)) - { - return "No items selected"; - } - - String result = null; - - boolean isReference = false; - Object selected = null; - if (object instanceof StructuredSelection) - { - selected = ((StructuredSelection) object).getFirstElement(); - - if (selected instanceof XSDConcreteComponent) - { - if (selected instanceof XSDElementDeclaration) - { - XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration) selected; - if (xsdElementDeclaration.isElementDeclarationReference()) - { - isReference = true; - } - } else if (selected instanceof XSDAttributeDeclaration) - { - if (((XSDAttributeDeclaration) selected).isAttributeDeclarationReference()) - { - isReference = true; - } - } else if (selected instanceof XSDModelGroupDefinition) - { - if (((XSDModelGroupDefinition) selected).isModelGroupDefinitionReference()) - { - isReference = true; - } - } - StringBuffer sb = new StringBuffer(); - Element element = ((XSDConcreteComponent) selected).getElement(); - if (element != null) - { - sb.append(((XSDConcreteComponent) selected).getElement().getLocalName()); - - if (isReference) - { - sb.append(" ");//$NON-NLS-1$ - sb.append(Messages.UI_PAGE_HEADING_REFERENCE); - } - - IWorkbench workbench = PlatformUI.getWorkbench(); - IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); - IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor(); - XSDSchema xsdSchema = ((XSDConcreteComponent) selected).getSchema(); - if (xsdSchema != editorPart.getAdapter(XSDSchema.class)) - { - sb.append(" (" + Messages.UI_LABEL_READ_ONLY + ")"); //$NON-NLS-1$ - } - return sb.toString(); - } - else - { - return "(" + Messages.UI_LABEL_READ_ONLY + ")"; //$NON-NLS-1$ - } - } - - if (object instanceof Element) - { - return ((Element) object).getLocalName(); - } - } - - return result; - } - - private Object getObject(Object objects, boolean multiple[]) - { - Assert.isNotNull(objects); - Object object = null; - return object; - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractExtensionsSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractExtensionsSection.java deleted file mode 100644 index 59ebc41567..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractExtensionsSection.java +++ /dev/null @@ -1,491 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import java.util.List; -import org.eclipse.draw2d.ColorConstants; -import org.eclipse.gef.commands.Command; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.jface.window.Window; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.SashForm; -import org.eclipse.swt.events.MouseTrackAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Tree; -import org.eclipse.swt.widgets.TreeItem; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.forms.widgets.Section; -import org.eclipse.ui.part.PageBook; -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; -import org.eclipse.wst.sse.core.internal.provisional.INodeNotifier; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddExtensionCommand; -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.AddExtensionsComponentDialog; -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.DOMExtensionDetailsContentProvider; -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.DOMExtensionItemEditManager; -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.DOMExtensionItemMenuListener; -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.ExtensionDetailsViewer; -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.ExtensionsSchemasRegistry; -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.SpecificationForExtensionsSchema; -import org.w3c.dom.Element; - -public abstract class AbstractExtensionsSection extends AbstractSection -{ - protected ExtensionDetailsViewer extensionDetailsViewer; - protected TreeViewer extensionTreeViewer; - protected ITreeContentProvider extensionTreeContentProvider; - protected ILabelProvider extensionTreeLabelProvider; - protected Label contentLabel; - protected ISelectionChangedListener elementSelectionChangedListener; - protected IDocumentChangedNotifier documentChangeNotifier; - protected INodeAdapter internalNodeAdapter = new InternalNodeAdapter(); - - private Composite page, pageBook2; - private Button addButton, removeButton; - private PageBook pageBook; - - /** - * - */ - public AbstractExtensionsSection() - { - super(); - } - - class InternalNodeAdapter implements INodeAdapter - { - - public boolean isAdapterForType(Object type) - { - // we don't really need to implement this - return true; - } - - public void notifyChanged(INodeNotifier notifier, int eventType, Object changedFeature, Object oldValue, Object newValue, int pos) - { - extensionTreeViewer.refresh(); - } - } - - public void createContents(Composite parent) - { - // TODO (cs) add assertion - if (extensionTreeContentProvider == null) - return; - - IEditorPart editor = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().getActiveEditor(); - documentChangeNotifier = (IDocumentChangedNotifier)editor.getAdapter(IDocumentChangedNotifier.class); - - if (documentChangeNotifier != null) - { - documentChangeNotifier.addListener(internalNodeAdapter); - } - - composite = getWidgetFactory().createFlatFormComposite(parent); - - GridLayout gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 1; - composite.setLayout(gridLayout); - - GridData gridData = new GridData(); - - page = getWidgetFactory().createComposite(composite); - gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 1; - page.setLayout(gridLayout); - - gridData = new GridData(); - gridData.grabExcessHorizontalSpace = true; - gridData.grabExcessVerticalSpace = true; - gridData.verticalAlignment = GridData.FILL; - gridData.horizontalAlignment = GridData.FILL; - page.setLayoutData(gridData); - - pageBook = new PageBook(page, SWT.FLAT); - gridData = new GridData(); - gridData.grabExcessHorizontalSpace = true; - gridData.grabExcessVerticalSpace = true; - gridData.verticalAlignment = GridData.FILL; - gridData.horizontalAlignment = GridData.FILL; - pageBook.setLayoutData(gridData); - - pageBook2 = getWidgetFactory().createComposite(pageBook, SWT.FLAT); - - gridLayout = new GridLayout(); - gridLayout.marginHeight = 2; - gridLayout.marginWidth = 2; - gridLayout.numColumns = 1; - pageBook2.setLayout(gridLayout); - - gridData = new GridData(); - gridData.grabExcessHorizontalSpace = true; - gridData.grabExcessVerticalSpace = true; - gridData.verticalAlignment = GridData.FILL; - gridData.horizontalAlignment = GridData.FILL; - pageBook2.setLayoutData(gridData); - - SashForm sashForm = new SashForm(pageBook2, SWT.HORIZONTAL); - gridData = new GridData(); - gridData.grabExcessHorizontalSpace = true; - gridData.grabExcessVerticalSpace = true; - gridData.verticalAlignment = GridData.FILL; - gridData.horizontalAlignment = GridData.FILL; - sashForm.setLayoutData(gridData); - sashForm.setForeground(ColorConstants.white); - sashForm.setBackground(ColorConstants.white); - Control[] children = sashForm.getChildren(); - for (int i = 0; i < children.length; i++) - { - children[i].setVisible(false); - } - Composite leftContent = getWidgetFactory().createComposite(sashForm, SWT.FLAT); - gridLayout = new GridLayout(); - gridLayout.numColumns = 1; - leftContent.setLayout(gridLayout); - - Section section = getWidgetFactory().createSection(leftContent, SWT.FLAT | Section.TITLE_BAR); - section.setText("Extensions"); - section.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Composite tableAndButtonComposite = getWidgetFactory().createComposite(leftContent, SWT.FLAT); - tableAndButtonComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); - gridLayout = new GridLayout(); - gridLayout.numColumns = 2; - tableAndButtonComposite.setLayout(gridLayout); - - extensionTreeViewer = new TreeViewer(tableAndButtonComposite, SWT.FLAT | SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.LINE_SOLID); - MenuManager menuManager = new MenuManager(); - extensionTreeViewer.getTree().setMenu(menuManager.createContextMenu(extensionTreeViewer.getTree())); - menuManager.addMenuListener(new DOMExtensionItemMenuListener(extensionTreeViewer)); - - gridLayout = new GridLayout(); - gridLayout.numColumns = 1; - extensionTreeViewer.getTree().setLayout(gridLayout); - gridData = new GridData(); - gridData.grabExcessHorizontalSpace = true; - gridData.grabExcessVerticalSpace = true; - gridData.verticalAlignment = GridData.FILL; - gridData.horizontalAlignment = GridData.FILL; - - extensionTreeViewer.getTree().setLayoutData(gridData); - extensionTreeViewer.setContentProvider(extensionTreeContentProvider); - extensionTreeViewer.setLabelProvider(extensionTreeLabelProvider); - elementSelectionChangedListener = new ElementSelectionChangedListener(); - extensionTreeViewer.addSelectionChangedListener(elementSelectionChangedListener); - extensionTreeViewer.getTree().addMouseTrackListener(new MouseTrackAdapter() - { - public void mouseHover(org.eclipse.swt.events.MouseEvent e) - { - ISelection selection = extensionTreeViewer.getSelection(); - if (selection instanceof StructuredSelection) - { - Object obj = ((StructuredSelection) selection).getFirstElement(); - if (obj instanceof Element) - { - Element element = (Element) obj; - ExtensionsSchemasRegistry registry = getExtensionsSchemasRegistry(); - // ApplicationSpecificSchemaProperties[] properties = - // registry.getAllApplicationSpecificSchemaProperties(); - // ApplicationSpecificSchemaProperties[] properties = - // (ApplicationSpecificSchemaProperties[]) - // registry.getAllApplicationSpecificSchemaProperties().toArray(new - // ApplicationSpecificSchemaProperties[0]); - List properties = registry.getAllExtensionsSchemasContribution(); - - int length = properties.size(); - for (int i = 0; i < length; i++) - { - SpecificationForExtensionsSchema current = (SpecificationForExtensionsSchema) properties.get(i); - if (current.getNamespaceURI().equals(element.getNamespaceURI())) - { - extensionTreeViewer.getTree().setToolTipText(current.getDescription()); - break; - } - } - } - } - }; - - }); - - Composite buttonComposite = getWidgetFactory().createComposite(tableAndButtonComposite, SWT.FLAT); - //ColumnLayout columnLayout = new ColumnLayout(); - //buttonComposite.setLayout(columnLayout); - buttonComposite.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING)); - gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 1; - gridLayout.makeColumnsEqualWidth = true; - buttonComposite.setLayout(gridLayout); - - addButton = getWidgetFactory().createButton(buttonComposite, "Add...", SWT.FLAT); - addButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - addButton.addSelectionListener(this); - addButton.setToolTipText("Add Extension Component"); - //addButton.setLayoutData(new ColumnLayoutData(ColumnLayoutData.FILL)); - addButton.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - removeButton = getWidgetFactory().createButton(buttonComposite, "Remove", SWT.FLAT); - removeButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - removeButton.addSelectionListener(this); - removeButton.setToolTipText("Remove Extension Component"); - //removeButton.setLayoutData(new ColumnLayoutData(ColumnLayoutData.FILL)); - - Button up = getWidgetFactory().createButton(buttonComposite, "Up", SWT.FLAT); - //up.setLayoutData(new ColumnLayoutData(ColumnLayoutData.FILL)); - up.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Button down = getWidgetFactory().createButton(buttonComposite, "Down", SWT.FLAT); - //down.setLayoutData(new ColumnLayoutData(ColumnLayoutData.FILL)); - down.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Composite rightContent = getWidgetFactory().createComposite(sashForm, SWT.FLAT); - Section section2 = getWidgetFactory().createSection(rightContent, SWT.FLAT | Section.TITLE_BAR); - section2.setText("Extension Details"); - section2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - //contentLabel = getWidgetFactory().createLabel(rightContent, "Content"); - - Composite testComp = getWidgetFactory().createComposite(rightContent, SWT.FLAT); - - gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginBottom = 0; - gridLayout.marginLeft = 0; - gridLayout.marginRight = 0; - gridLayout.numColumns = 1; - gridLayout.marginHeight = 3; - gridLayout.marginWidth = 3; - rightContent.setLayout(gridLayout); - - gridData = new GridData(); - gridData.grabExcessHorizontalSpace = true; - gridData.grabExcessVerticalSpace = true; - gridData.verticalAlignment = GridData.FILL; - gridData.horizontalAlignment = GridData.FILL; - rightContent.setLayoutData(gridData); - - gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginLeft = 0; - gridLayout.marginRight = 0; - gridLayout.marginBottom = 0; - gridLayout.marginHeight = 3; - gridLayout.marginWidth = 3; - gridLayout.numColumns = 2; - testComp.setLayout(gridLayout); - - gridData = new GridData(); - gridData.grabExcessHorizontalSpace = true; - gridData.grabExcessVerticalSpace = true; - gridData.verticalAlignment = GridData.FILL; - gridData.horizontalAlignment = GridData.FILL; - testComp.setLayoutData(gridData); - - createElementContentWidget(testComp); - - int[] weights = { 50, 50 }; - sashForm.setWeights(weights); - - pageBook.showPage(pageBook2); - } - - protected void createElementContentWidget(Composite parent) - { - extensionDetailsViewer = new ExtensionDetailsViewer(parent, getWidgetFactory()); - extensionDetailsViewer.setEditManager(new DOMExtensionItemEditManager()); - extensionDetailsViewer.setContentProvider(new DOMExtensionDetailsContentProvider()); - extensionDetailsViewer.getControl().setLayoutData(new GridData(GridData.FILL_BOTH)); - } - - /* - * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh() - */ - public void refresh() - { - setListenerEnabled(false); - if (input != null) - { - Tree tree = extensionTreeViewer.getTree(); - extensionDetailsViewer.setInput(null); - tree.removeAll(); - - extensionTreeViewer.setInput(input); - - if (tree.getSelectionCount() == 0 && tree.getItemCount() > 0) - { - TreeItem treeItem = tree.getItem(0); - if (treeItem != null) - { - extensionDetailsViewer.setInput(treeItem.getData()); - extensionDetailsViewer.refresh(); - } - } - } - setListenerEnabled(true); - - } - - public Composite getPage() - { - return page; - } - - protected abstract AddExtensionCommand getAddExtensionCommand(Object o); - protected abstract Command getRemoveExtensionCommand(Object o); - protected abstract ExtensionsSchemasRegistry getExtensionsSchemasRegistry(); - - protected AddExtensionsComponentDialog createAddExtensionsComponentDialog() - { - return new AddExtensionsComponentDialog(composite.getShell(), getExtensionsSchemasRegistry()); - } - - public void widgetSelected(SelectionEvent event) - { - if (event.widget == addButton) - { - ExtensionsSchemasRegistry registry = getExtensionsSchemasRegistry(); - AddExtensionsComponentDialog dialog = createAddExtensionsComponentDialog(); - - List properties = registry.getAllExtensionsSchemasContribution(); - - dialog.setInput(properties); - dialog.setBlockOnOpen(true); - - if (dialog.open() == Window.OK) - { - Object newSelection = null; - Object[] result = dialog.getResult(); - if (result != null) - { - SpecificationForExtensionsSchema extensionsSchemaSpec = (SpecificationForExtensionsSchema) result[1]; - AddExtensionCommand addExtensionCommand = getAddExtensionCommand(result[0]); - if (addExtensionCommand != null) - { - addExtensionCommand.setSchemaProperties(extensionsSchemaSpec); - if (getCommandStack() != null) - { - getCommandStack().execute(addExtensionCommand); - newSelection = addExtensionCommand.getNewObject(); - } - } - } - extensionTreeViewer.refresh(); - refresh(); - if (newSelection != null) - { - extensionTreeViewer.setSelection(new StructuredSelection(newSelection)); - } - } - - } - else if (event.widget == removeButton) - { - ISelection selection = extensionTreeViewer.getSelection(); - - if (selection instanceof StructuredSelection) - { - Object o = ((StructuredSelection) selection).getFirstElement(); - Command command = getRemoveExtensionCommand(o); - if (getCommandStack() != null) - { - getCommandStack().execute(command); - extensionTreeViewer.setInput(input); - extensionTreeViewer.refresh(); - - if (extensionTreeViewer.getTree().getItemCount() > 0) - {/* - // TODO (cs) I think this code is intended to set a selection - // now that an object can been removed ... need to fix this - Object object = extensionTreeViewer.get - if (object != null) - { - extensionTreeViewer.setSelection(new StructuredSelection(object)); - } - */ - } - else - { - extensionDetailsViewer.setInput(null); - } - } - } - } - else if (event.widget == extensionTreeViewer.getTree()) - { - - } - } - - public void widgetDefaultSelected(SelectionEvent event) - { - - } - - public boolean shouldUseExtraSpace() - { - return true; - } - - public void dispose() - { - if (documentChangeNotifier != null) - documentChangeNotifier.removeListener(internalNodeAdapter); - } - - - Element selectedElement; - - class ElementSelectionChangedListener implements ISelectionChangedListener - { - public void selectionChanged(SelectionChangedEvent event) - { - ISelection selection = event.getSelection(); - if (selection instanceof StructuredSelection) - { - Object obj = ((StructuredSelection) selection).getFirstElement(); - if (obj instanceof Element) - { - selectedElement = (Element) obj; - extensionDetailsViewer.setInput(obj); - //extensionDetailsViewer.setASIElement(selectedElement); - //extensionDetailsViewer.setCommandStack(getCommandStack()); - } - } - } - } - - public ITreeContentProvider getExtensionTreeContentProvider() - { - return extensionTreeContentProvider; - } - - public void setExtensionTreeContentProvider(ITreeContentProvider extensionTreeContentProvider) - { - this.extensionTreeContentProvider = extensionTreeContentProvider; - } - - public ILabelProvider getExtensionTreeLabelProvider() - { - return extensionTreeLabelProvider; - } - - public void setExtensionTreeLabelProvider(ILabelProvider extensionTreeLabelProvider) - { - this.extensionTreeLabelProvider = extensionTreeLabelProvider; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractSection.java deleted file mode 100644 index 6480f5e141..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractSection.java +++ /dev/null @@ -1,366 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.eclipse.emf.ecore.EObject; -import org.eclipse.gef.commands.CommandStack; -import org.eclipse.jface.action.IStatusLineManager; -import org.eclipse.jface.action.SubContributionManager; -import org.eclipse.jface.action.SubStatusLineManager; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.PaintEvent; -import org.eclipse.swt.events.PaintListener; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.GC; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Listener; -import org.eclipse.ui.IEditorPart; -import org.eclipse.ui.IEditorSite; -import org.eclipse.ui.ISharedImages; -import org.eclipse.ui.IViewSite; -import org.eclipse.ui.IWorkbench; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.IWorkbenchWindow; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.forms.FormColors; -import org.eclipse.ui.views.properties.tabbed.AbstractPropertySection; -import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.xsd.XSDComponent; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDSchema; - -public abstract class AbstractSection extends AbstractPropertySection implements SelectionListener, Listener -{ - protected Composite composite; - protected PaintListener painter; - protected XSDSchema xsdSchema; - protected Object input; - protected boolean isReadOnly; - protected boolean listenerEnabled = true; - protected boolean isSimple; - protected CustomListener customListener = new CustomListener(); - protected IEditorPart owningEditor; - private IStatusLineManager statusLine; - - public static final Image ICON_ERROR = XSDEditorPlugin.getDefault().getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK); - - public AbstractSection() - { - super(); - } - - public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) - { - super.createControls(parent, aTabbedPropertySheetPage); - isSimple = getIsSimple(); - createContents(parent); - } - - protected abstract void createContents(Composite parent); - - protected PaintListener createPainter() { - return new PaintListener() { - - public void paintControl(PaintEvent e) { - Rectangle bounds = composite.getClientArea(); - GC gc = e.gc; - - gc.setForeground(gc.getBackground()); - gc.setBackground(getWidgetFactory().getColors().getColor( - FormColors.TB_BG)); - -// gc.fillGradientRectangle(4 + bounds.width / 2, 0, -// bounds.width / 2 - 9, bounds.height, false); - - gc.setForeground(getWidgetFactory().getColors().getColor( - FormColors.TB_BORDER)); -// gc.drawLine(bounds.width - 5, 0, bounds.width - 5, -// bounds.height); - } - - }; - - } - - public void dispose() - { - if (composite != null && ! composite.isDisposed() && painter != null) - composite.removePaintListener(painter); - - super.dispose(); - } - - public void setInput(IWorkbenchPart part, ISelection selection) { - super.setInput(part, selection); - isSimple = getIsSimple(); - Object input = ((IStructuredSelection)selection).getFirstElement(); - this.input = input; - - if (input instanceof XSDConcreteComponent) - { - xsdSchema = ((XSDConcreteComponent)input).getSchema(); - } - - // set owning editor of this section - if (part!=null) - { - if (part instanceof IEditorPart) - { - owningEditor = (IEditorPart)part; - } - else - { - owningEditor = part.getSite().getWorkbenchWindow().getActivePage().getActiveEditor(); - } - } - if (xsdSchema == owningEditor.getAdapter(XSDSchema.class)) - { - isReadOnly = false; - } - else - { - isReadOnly = true; - } - - } - - public void refresh() - { - super.refresh(); - - if (isReadOnly) - { - composite.setEnabled(false); - } - else - { - composite.setEnabled(true); - } - } - - public void applyAllListeners(Control control) - { - control.addListener(SWT.Modify, customListener); - control.addListener(SWT.FocusOut, customListener); - control.addListener(SWT.KeyDown, customListener); - } - - public void applyModifyListeners(Control control) - { - control.addListener(SWT.Modify, customListener); - control.addListener(SWT.FocusOut, customListener); - } - - public void applyKeyListener(Control control) - { - control.addListener(SWT.KeyDown, customListener); - } - - public void removeListeners(Control control) - { - control.removeListener(SWT.Modify, customListener); - control.removeListener(SWT.FocusOut, customListener); - control.removeListener(SWT.KeyDown, customListener); - } - - public void doWidgetDefaultSelected(SelectionEvent e) - {} - - public void doWidgetSelected(SelectionEvent e) - {} - - public void widgetSelected(SelectionEvent e) - { - if (isListenerEnabled() && - input != null && - !isReadOnly) - { - doWidgetSelected(e); - } - } - - public void widgetDefaultSelected(SelectionEvent e) - { - if (isListenerEnabled() && - input != null && - !isReadOnly) - { - doWidgetDefaultSelected(e); - } - } - - /** - * Get the value of listenerEnabled. - * @return value of listenerEnabled. - */ - public boolean isListenerEnabled() - { - return listenerEnabled; - } - - /** - * Set the value of listenerEnabled. - * @param v Value to assign to listenerEnabled. - */ - public void setListenerEnabled(boolean v) - { - this.listenerEnabled = v; - } - - /** - * Sent when an event that the receiver has registered for occurs. - * - * @param event the event which occurred - */ - public void handleEvent(Event event) - { - if (isListenerEnabled() && !isReadOnly) - { - doHandleEvent(event); - } - } - - /** - * Subclasses should override - * @param event - */ - protected void doHandleEvent(Event event) - { - } - - protected IEditorPart getActiveEditor() - { - IWorkbench workbench = PlatformUI.getWorkbench(); - IWorkbenchWindow workbenchWindow = workbench.getActiveWorkbenchWindow(); - IEditorPart editorPart = workbenchWindow.getActivePage().getActiveEditor(); - this.owningEditor = editorPart; - return editorPart; - } - - public CommandStack getCommandStack() - { - Object commandStack = owningEditor.getAdapter(CommandStack.class); - - if (commandStack==null) - return null; - else - return (CommandStack)commandStack; - } - - public boolean getIsSimple() - { - return false; - } - - - - /** - * Intended to display error messages. - * @return - */ - private IStatusLineManager getStatusLineManager() - { - if (statusLine==null && getPart()!=null) - { - if(getPart().getSite() instanceof IEditorSite) - statusLine = ((IEditorSite)getPart().getSite()).getActionBars().getStatusLineManager(); - else if (getPart().getSite() instanceof IViewSite) - statusLine = ((IViewSite)getPart().getSite()).getActionBars().getStatusLineManager(); - - /* - * We must manually set the visibility of the status line since the action bars are from the editor - * which means the status line only shows up when the editor is in focus (by default). - * Note only a SubStatusLineManager can set the visibility. - */ - if (statusLine instanceof SubStatusLineManager) - ((SubStatusLineManager)statusLine).setVisible(true); - } - - return statusLine; - } - - /** - * Display an error message in the status line. - * Call setErrorMessage(null) to clear the status line. - * @param text - */ - public void setErrorMessage(String text) - { - IStatusLineManager statusLine = getStatusLineManager(); - - if (statusLine!=null) - { - if (text==null || text.length()<1) - statusLine.setErrorMessage(null); - else - statusLine.setErrorMessage(ICON_ERROR, text); - - // ensure our message gets displayed - if (statusLine instanceof SubContributionManager) - ((SubContributionManager)statusLine).setVisible(true); - - statusLine.update(true); - } - } - - - protected EObject getModel() - { - return (XSDComponent)input; - } - - - class CustomListener implements Listener - { - boolean handlingEvent = false; - public void handleEvent(Event event) - { - if (isListenerEnabled() && !isReadOnly) - { - switch (event.type) - { - case SWT.KeyDown : - { - if (event.character == SWT.CR) - { - if (!handlingEvent) - { - handlingEvent = true; - doHandleEvent(event); - handlingEvent = false; - } - } - break; - } - case SWT.FocusOut : - { - if (!handlingEvent) - { - handlingEvent = true; - doHandleEvent(event); - handlingEvent = false; - } - break; - } - } - } - } - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractSectionDescriptor.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractSectionDescriptor.java deleted file mode 100644 index 381f61a957..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AbstractSectionDescriptor.java +++ /dev/null @@ -1,108 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import java.util.ArrayList; -import java.util.List; - -import org.eclipse.jface.viewers.IFilter; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.views.properties.tabbed.ISection; -import org.eclipse.ui.views.properties.tabbed.ISectionDescriptor; -import org.eclipse.xsd.XSDConcreteComponent; -import org.w3c.dom.Element; - -public class AbstractSectionDescriptor implements ISectionDescriptor -{ - /** - * - */ - public AbstractSectionDescriptor() - { - super(); - } - - /* (non-Javadoc) - * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getId() - */ - public String getId() - { - return ""; - } - - /* (non-Javadoc) - * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getFilter() - */ - public IFilter getFilter() - { - return null; - } - - /* (non-Javadoc) - * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getInputTypes() - */ - public List getInputTypes() - { - List list = new ArrayList(); - list.add(XSDConcreteComponent.class); - return list; - } - - /* (non-Javadoc) - * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getSectionClass() - */ - public ISection getSectionClass() - { - return null; - } - - /* (non-Javadoc) - * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getTargetTab() - */ - public String getTargetTab() - { - return null; - } - - /* (non-Javadoc) - * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#appliesTo(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection) - */ - public boolean appliesTo(IWorkbenchPart part, ISelection selection) - { - Object object = null; - if (selection instanceof StructuredSelection) - { - StructuredSelection structuredSelection = (StructuredSelection)selection; - object = structuredSelection.getFirstElement(); - if (object instanceof XSDConcreteComponent || object instanceof Element) - { - return true; - } - } - return false; - } - - /* (non-Javadoc) - * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISectionDescriptor#getAfterSection() - */ - public String getAfterSection() - { - return ""; - } - - - public int getEnablesFor() - { - return ENABLES_FOR_ANY; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AnnotationSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AnnotationSection.java deleted file mode 100644 index f2cf3cf2a1..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/AnnotationSection.java +++ /dev/null @@ -1,153 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import java.io.IOException; -import java.util.List; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Text; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMElement; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddDocumentationCommand; -import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils; -import org.eclipse.xsd.XSDAnnotation; -import org.eclipse.xsd.XSDConcreteComponent; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -public class AnnotationSection extends AbstractSection -{ - Text simpleText; - - public void createContents(Composite parent) - { - composite = getWidgetFactory().createFlatFormComposite(parent); - - simpleText = getWidgetFactory().createText(composite, "", SWT.V_SCROLL | SWT.H_SCROLL); //$NON-NLS-1$ - simpleText.addListener(SWT.Modify, this); - - FormData data = new FormData(); - data.left = new FormAttachment(0, 1); - data.right = new FormAttachment(100, -1); - data.top = new FormAttachment(0, 1); - data.bottom = new FormAttachment(100, -1); - simpleText.setLayoutData(data); - } - - public AnnotationSection() - { - super(); - } - - /* - * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh() - */ - public void refresh() - { - super.refresh(); - setListenerEnabled(false); - if (input instanceof XSDConcreteComponent) - { - XSDAnnotation xsdAnnotation = XSDCommonUIUtils.getInputXSDAnnotation((XSDConcreteComponent) input, false); - setInitialText(xsdAnnotation); - } - setListenerEnabled(true); - } - - public void doHandleEvent(Event event) - { - if (input instanceof XSDConcreteComponent) - { - if (event.widget == simpleText) - { - AddDocumentationCommand command = new AddDocumentationCommand("Add Documentation", null, (XSDConcreteComponent) input, simpleText.getText(), ""); - getCommandStack().execute(command); - } - } - - } - - public boolean shouldUseExtraSpace() - { - return true; - } - - public void dispose() - { - - } - - private void setInitialText(XSDAnnotation an) - { - if (an != null) - { - try - { - List documentationList = an.getUserInformation(); - if (documentationList.size() > 0) - { - Element docElement = (Element) documentationList.get(0); - if (docElement != null) - { - simpleText.setText(doSerialize(docElement)); - } - } - } - catch (Exception e) - { - - } - } - else - { - simpleText.setText(""); - } - } - - private String doSerialize(Element element) throws IOException - { - String source = ""; - - Node firstChild = element.getFirstChild(); - Node lastChild = element.getLastChild(); - int start = 0; - int end = 0; - - if (element instanceof IDOMElement) - { - IDOMElement domElement = (IDOMElement) element; - IDOMModel model = domElement.getModel(); - IDOMDocument doc = model.getDocument(); - - if (firstChild instanceof IDOMNode) - { - IDOMNode first = (IDOMNode) firstChild; - start = first.getStartOffset(); - } - if (lastChild instanceof IDOMNode) - { - IDOMNode last = (IDOMNode) lastChild; - end = last.getEndOffset(); - } - source = doc.getSource().substring(start, end); - } - - return source; - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/CommonDirectivesSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/CommonDirectivesSection.java deleted file mode 100644 index f54d92f500..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/CommonDirectivesSection.java +++ /dev/null @@ -1,157 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.eclipse.core.resources.IFile; -import org.eclipse.emf.common.util.URI; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.StyleRange; -import org.eclipse.swt.custom.StyledText; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.IFileEditorInput; -import org.eclipse.wst.common.uriresolver.internal.util.URIHelper; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.xsd.XSDInclude; -import org.eclipse.xsd.XSDRedefine; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.util.XSDParser; - -public abstract class CommonDirectivesSection extends AbstractSection -{ - Text schemaLocationText; - Button wizardButton; - StyledText errorText; - Color red; - - // TODO: common up code with XSDSelectIncludeFileWizard - public void doHandleEvent(Event event) - { - errorText.setText(""); - if (event.type == SWT.Modify) - { - if (event.widget == schemaLocationText) - { - String errorMessage = ""; - boolean isValidSchemaLocation = true; - String xsdModelFile = schemaLocationText.getText(); - String namespace = ""; - XSDSchema externalSchema = null; - - if (xsdModelFile.length() == 0) - { - handleSchemaLocationChange(xsdModelFile, "", null); - return; - } - - try - { - IFile currentIFile = ((IFileEditorInput)getActiveEditor().getEditorInput()).getFile(); - - URI newURI = URI.createURI(xsdModelFile); - String xsdFile = URIHelper.getRelativeURI(newURI.toString(), currentIFile.getFullPath().toString()); - final String normalizedXSDFile = URIHelper.normalize(xsdFile, currentIFile.getLocation().toString(), ""); - - XSDParser parser = new XSDParser(); - parser.parse(normalizedXSDFile); - - externalSchema = parser.getSchema(); - - if (externalSchema != null) - { - String extNamespace = externalSchema.getTargetNamespace(); - if (extNamespace == null) extNamespace = ""; - namespace = extNamespace; - - if (externalSchema.getDiagnostics() != null && - externalSchema.getDiagnostics().size() > 0) - { - isValidSchemaLocation = false; - errorMessage = XSDEditorPlugin.getResourceString("_UI_INCORRECT_XML_SCHEMA", xsdModelFile); - } - else - { - String currentNameSpace = xsdSchema.getTargetNamespace(); - if (input instanceof XSDInclude || input instanceof XSDRedefine) - { - // Check the namespace to make sure they are the same as current file - if (extNamespace != null) - { - if (currentNameSpace != null && !extNamespace.equals(currentNameSpace)) - { - errorMessage = XSDEditorPlugin.getResourceString("_UI_DIFFERENT_NAME_SPACE", xsdModelFile); - isValidSchemaLocation = false; - } - } - } - else - { - // Check the namespace to make sure they are different from the current file - if (extNamespace != null) - { - if (currentNameSpace != null && extNamespace.equals(currentNameSpace)) - { - errorMessage = XSDEditorPlugin.getResourceString("_UI_SAME_NAME_SPACE", xsdModelFile); - isValidSchemaLocation = false; - } - } - } - } - } - else - { - errorMessage = "Invalid file"; - isValidSchemaLocation = false; - } - } - catch(Exception e) - { - errorMessage = "Invalid file"; - isValidSchemaLocation = false; - } - finally - { - if (!isValidSchemaLocation) - { - errorText.setText(errorMessage); - int length = errorText.getText().length(); - red = new Color(null, 255, 0, 0); - StyleRange style = new StyleRange(0, length, red, schemaLocationText.getBackground()); - errorText.setStyleRange(style); - } - else - { - handleSchemaLocationChange(xsdModelFile, namespace, externalSchema); - } - } - } - } - } - - protected void handleSchemaLocationChange(String schemaFileString, String namespace, XSDSchema externalSchema) - { - - } - - - public void dispose() - { - super.dispose(); - if (red != null) - { - red.dispose(); - red = null; - } - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/EnumerationsSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/EnumerationsSection.java deleted file mode 100644 index 84b27e2b2d..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/EnumerationsSection.java +++ /dev/null @@ -1,404 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.StringTokenizer; - -import org.eclipse.gef.commands.CompoundCommand; -import org.eclipse.jface.viewers.CellEditor; -import org.eclipse.jface.viewers.ColumnWeightData; -import org.eclipse.jface.viewers.ICellModifier; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TableLayout; -import org.eclipse.jface.viewers.TextCellEditor; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.window.Window; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.FormAttachment; -import org.eclipse.swt.layout.FormData; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.swt.widgets.TableItem; -import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; -import org.eclipse.wst.common.ui.internal.viewers.NavigableTableViewer; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddEnumerationsCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.DeleteCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.SetXSDFacetValueCommand; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.wst.xsd.ui.internal.widgets.EnumerationsDialog; -import org.eclipse.xsd.XSDEnumerationFacet; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.util.XSDConstants; - -public class EnumerationsSection extends AbstractSection -{ - private EnumerationsTableViewer enumerationsTable; - private Button addButton; - private Button addManyButton; - private Button deleteButton; - - /** - * - */ - public EnumerationsSection() - { - super(); - } - - public void widgetSelected(SelectionEvent e) - { - XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input; - - if (e.widget == addButton) - { - List enumList = st.getEnumerationFacets(); - StringBuffer newName = new StringBuffer("value1"); //$NON-NLS-1$ - int suffix = 1; - for (Iterator i = enumList.iterator(); i.hasNext();) - { - XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) i.next(); - String value = enumFacet.getLexicalValue(); - if (value != null) - { - if (value.equals(newName.toString())) - { - suffix++; - newName = new StringBuffer("value" + String.valueOf(suffix)); //$NON-NLS-1$ - } - } - } - - AddEnumerationsCommand command = new AddEnumerationsCommand("Add Enumeration", (XSDSimpleTypeDefinition) input); - command.setValue(newName.toString()); - getCommandStack().execute(command); - - enumerationsTable.refresh(); - int newItemIndex = enumerationsTable.getTable().getItemCount() - 1; - enumerationsTable.editElement(enumerationsTable.getElementAt(newItemIndex), 0); - } - else if (e.widget == addManyButton) - { - Display display = Display.getCurrent(); - // if it is null, get the default one - display = display == null ? Display.getDefault() : display; - Shell parentShell = display.getActiveShell(); - EnumerationsDialog dialog = new EnumerationsDialog(parentShell); - dialog.setBlockOnOpen(true); - int result = dialog.open(); - - if (result == Window.OK) - { - String text = dialog.getText(); - String delimiter = dialog.getDelimiter(); - StringTokenizer tokenizer = new StringTokenizer(text, delimiter); - CompoundCommand compoundCommand = new CompoundCommand("Add Enumerations"); - while (tokenizer.hasMoreTokens()) - { - String token = tokenizer.nextToken(); - if (dialog.isPreserveWhitespace() == false) - { - token = token.trim(); - } - AddEnumerationsCommand command = new AddEnumerationsCommand("Add Enumerations", (XSDSimpleTypeDefinition) input); - command.setValue(token); - compoundCommand.add(command); - } - getCommandStack().execute(compoundCommand); - } - enumerationsTable.refresh(); - } - else if (e.widget == deleteButton) - { - StructuredSelection selection = (StructuredSelection) enumerationsTable.getSelection(); - if (selection != null) - { - Iterator i = selection.iterator(); - CompoundCommand compoundCommand = new CompoundCommand("Delete Enumeration"); - while (i.hasNext()) - { - Object obj = i.next(); - if (obj != null) - { - if (obj instanceof XSDEnumerationFacet) - { - XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) obj; - - DeleteCommand deleteCommand = new DeleteCommand("Delete Enumeration", enumFacet); - compoundCommand.add(deleteCommand); - } - } - } - getCommandStack().execute(compoundCommand); - enumerationsTable.refresh(); - } - } - else if (e.widget == enumerationsTable.getTable()) - { - StructuredSelection selection = (StructuredSelection) enumerationsTable.getSelection(); - if (selection.getFirstElement() != null) - { - deleteButton.setEnabled(true); - } - else - { - deleteButton.setEnabled(false); - } - } - - } - - public void widgetDefaultSelected(SelectionEvent e) - { - - } - - public void createContents(Composite parent) - { - TabbedPropertySheetWidgetFactory factory = getWidgetFactory(); - composite = factory.createFlatFormComposite(parent); - - enumerationsTable = new EnumerationsTableViewer(getWidgetFactory().createTable(composite, SWT.MULTI | SWT.FULL_SELECTION)); - enumerationsTable.setInput(input); - Table table = enumerationsTable.getTable(); - table.addSelectionListener(this); - - addButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_ADD_BUTTON_LABEL"), SWT.PUSH); //$NON-NLS-1$ - addManyButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_REGEX_WIZARD_ADD_BUTTON_LABEL") + "...", SWT.PUSH); //$NON-NLS-1$ - deleteButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_ACTION_DELETE_INCLUDE"), SWT.PUSH); //$NON-NLS-1$ - - FormData data2 = new FormData(); - data2.top = new FormAttachment(0, 0); - data2.left = new FormAttachment(100, -100); - data2.right = new FormAttachment(100, 0); - // data2.width = 50; - addButton.setLayoutData(data2); - addButton.addSelectionListener(this); - - FormData data = new FormData(); - data.left = new FormAttachment(addButton, 0, SWT.LEFT); - data.right = new FormAttachment(100, 0); - data.top = new FormAttachment(addButton, 0); - addManyButton.setLayoutData(data); - addManyButton.addSelectionListener(this); - - data = new FormData(); - data.left = new FormAttachment(addButton, 0, SWT.LEFT); - data.right = new FormAttachment(100, 0); - data.top = new FormAttachment(addManyButton, 0); - deleteButton.setLayoutData(data); - deleteButton.setEnabled(false); - deleteButton.addSelectionListener(this); - - data = new FormData(); - data.top = new FormAttachment(0, 0); - data.left = new FormAttachment(0, 0); - data.right = new FormAttachment(addButton, 0); - data.bottom = new FormAttachment(100, 0); - data.width = 50; - table.setLayoutData(data); - table.addListener(SWT.Resize, this); - } - - /* - * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh() - */ - public void refresh() - { - if (isReadOnly) - { - composite.setEnabled(false); - } - else - { - composite.setEnabled(true); - } - XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input; - - Iterator validFacets = st.getValidFacets().iterator(); - - boolean isApplicable = false; - while (validFacets.hasNext()) - { - String aValidFacet = (String) validFacets.next(); - if (aValidFacet.equals(XSDConstants.ENUMERATION_ELEMENT_TAG)) - { - isApplicable = true; - } - } - - if (isApplicable) - { - addButton.setEnabled(true); - addManyButton.setEnabled(true); - } - else - { - addButton.setEnabled(false); - addManyButton.setEnabled(false); - } - enumerationsTable.setInput(input); - } - - public void handleEvent(Event event) - { - Table table = enumerationsTable.getTable(); - if (event.type == SWT.Resize && event.widget == table) - { - TableColumn tableColumn = table.getColumn(0); - tableColumn.setWidth(table.getSize().x); - } - } - - public void dispose() - { - } - - public boolean shouldUseExtraSpace() - { - return true; - } - - class EnumerationsTableViewer extends NavigableTableViewer implements ICellModifier - { - protected String[] columnProperties = { XSDConstants.ENUMERATION_ELEMENT_TAG }; - - protected CellEditor[] cellEditors; - - Table table; - - public EnumerationsTableViewer(Table table) - { - super(table); - table = getTable(); - - table.setLinesVisible(true); - - setContentProvider(new EnumerationsTableContentProvider()); - setLabelProvider(new EnumerationsTableLabelProvider()); - setColumnProperties(columnProperties); - - setCellModifier(this); - - TableColumn column = new TableColumn(table, SWT.NONE, 0); - column.setText(columnProperties[0]); - column.setAlignment(SWT.LEFT); - column.setResizable(true); - - cellEditors = new CellEditor[1]; - - TableLayout layout = new TableLayout(); - ColumnWeightData data = new ColumnWeightData(100); - - layout.addColumnData(data); - cellEditors[0] = new TextCellEditor(table); - - getTable().setLayout(layout); - setCellEditors(cellEditors); - } - - public boolean canModify(Object element, String property) - { - return true; - } - - public void modify(Object element, String property, Object value) - { - if (element instanceof TableItem && (value != null)) - { - TableItem item = (TableItem) element; - - XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) item.getData(); - SetXSDFacetValueCommand command = new SetXSDFacetValueCommand("Set Enumeration Value", enumFacet); - command.setValue((String) value); - getCommandStack().execute(command); - item.setData(enumFacet); - item.setText((String) value); - } - } - - public Object getValue(Object element, String property) - { - if (element instanceof XSDEnumerationFacet) - { - XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) element; - String value = enumFacet.getLexicalValue(); - if (value == null) - value = ""; //$NON-NLS-1$ - return value; - } - return ""; //$NON-NLS-1$ - } - - } - - class EnumerationsTableContentProvider implements IStructuredContentProvider - { - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) - { - } - - public java.lang.Object[] getElements(java.lang.Object inputElement) - { - java.util.List list = new ArrayList(); - if (inputElement instanceof XSDSimpleTypeDefinition) - { - XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) inputElement; - return st.getEnumerationFacets().toArray(); - } - return list.toArray(); - } - - public void dispose() - { - } - } - - class EnumerationsTableLabelProvider extends LabelProvider implements ITableLabelProvider - { - public EnumerationsTableLabelProvider() - { - - } - - public Image getColumnImage(Object element, int columnIndex) - { - return XSDEditorPlugin.getXSDImage("icons/XSDSimpleEnum.gif"); - } - - public String getColumnText(Object element, int columnIndex) - { - if (element instanceof XSDEnumerationFacet) - { - XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) element; - String value = enumFacet.getLexicalValue(); - if (value == null) - value = ""; - return value; - } - return ""; - } - - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/ExtensionsSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/ExtensionsSection.java deleted file mode 100644 index c891d9bfbb..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/ExtensionsSection.java +++ /dev/null @@ -1,77 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.eclipse.gef.commands.Command; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddExtensionAttributeCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddExtensionCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddExtensionElementCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.RemoveExtensionAttributerCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.RemoveExtensionElementCommand; -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.DOMExtensionTreeLabelProvider; -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.ExtensionsSchemasRegistry; -import org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo.XSDExtensionTreeContentProvider; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.xsd.XSDAnnotation; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.w3c.dom.Attr; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -public class ExtensionsSection extends AbstractExtensionsSection -{ - public ExtensionsSection() - { - super(); - setExtensionTreeLabelProvider(new DOMExtensionTreeLabelProvider()); - setExtensionTreeContentProvider(new XSDExtensionTreeContentProvider()); - } - - protected AddExtensionCommand getAddExtensionCommand(Object o) - { - AddExtensionCommand addExtensionCommand = null; - if (o instanceof XSDElementDeclaration) - { - XSDElementDeclaration element = (XSDElementDeclaration) o; - addExtensionCommand = new AddExtensionElementCommand("Add AppInfo Element", (XSDConcreteComponent) input, element); - } - else if (o instanceof XSDAttributeDeclaration) - { - XSDAttributeDeclaration attribute = (XSDAttributeDeclaration) o; - addExtensionCommand = new AddExtensionAttributeCommand("Add AppInfo Attribute", (XSDConcreteComponent) input, attribute); - } - return addExtensionCommand; - } - - protected Command getRemoveExtensionCommand(Object o) - { - Command command = null; - if (o instanceof Element) - { - XSDAnnotation xsdAnnotation = (XSDAnnotation) extensionTreeViewer.getInput(); - Node appInfoElement = ((Element) o).getParentNode(); - command = new RemoveExtensionElementCommand("Remove AppInfo Element", xsdAnnotation, appInfoElement); - } - else if (o instanceof Attr) - { - Element hostElement = ((Attr) o).getOwnerElement(); - command = new RemoveExtensionAttributerCommand("Remove AppInfo Attribute", hostElement, (Attr) o); - } - return command; - } - - protected ExtensionsSchemasRegistry getExtensionsSchemasRegistry() - { - return XSDEditorPlugin.getDefault().getExtensionsSchemasRegistry(); - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/FacetViewer.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/FacetViewer.java deleted file mode 100644 index e13d74d745..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/FacetViewer.java +++ /dev/null @@ -1,559 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -//import java.util.ArrayList; -//import java.util.Iterator; -//import java.util.List; -// -//import org.eclipse.jface.viewers.CellEditor; -//import org.eclipse.jface.viewers.ColumnWeightData; -//import org.eclipse.jface.viewers.ICellModifier; -//import org.eclipse.jface.viewers.ISelectionChangedListener; -//import org.eclipse.jface.viewers.IStructuredContentProvider; -//import org.eclipse.jface.viewers.ITableLabelProvider; -//import org.eclipse.jface.viewers.LabelProvider; -//import org.eclipse.jface.viewers.SelectionChangedEvent; -//import org.eclipse.jface.viewers.StructuredSelection; -//import org.eclipse.jface.viewers.TableLayout; -//import org.eclipse.jface.viewers.TextCellEditor; -//import org.eclipse.jface.viewers.Viewer; -//import org.eclipse.swt.SWT; -//import org.eclipse.swt.events.MouseEvent; -//import org.eclipse.swt.events.MouseTrackAdapter; -//import org.eclipse.swt.graphics.Image; -//import org.eclipse.swt.graphics.Point; -//import org.eclipse.swt.widgets.Composite; -//import org.eclipse.swt.widgets.Table; -//import org.eclipse.swt.widgets.TableColumn; -//import org.eclipse.swt.widgets.TableItem; -//import org.eclipse.wst.common.ui.internal.viewers.NavigableTableViewer; -//import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -//import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute; -//import org.eclipse.wst.xsd.ui.internal.properties.XSDComboBoxPropertyDescriptor; -//import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper; -//import org.eclipse.xsd.XSDConstrainingFacet; -//import org.eclipse.xsd.XSDFactory; -//import org.eclipse.xsd.XSDMaxExclusiveFacet; -//import org.eclipse.xsd.XSDMaxFacet; -//import org.eclipse.xsd.XSDMaxInclusiveFacet; -//import org.eclipse.xsd.XSDMinExclusiveFacet; -//import org.eclipse.xsd.XSDMinFacet; -//import org.eclipse.xsd.XSDMinInclusiveFacet; -//import org.eclipse.xsd.XSDSimpleTypeDefinition; -//import org.eclipse.xsd.util.XSDConstants; -//import org.eclipse.xsd.util.XSDSchemaBuildingTools; -//import org.w3c.dom.Element; - -public class FacetViewer //extends NavigableTableViewer implements ICellModifier -{ -// public static final String FACET_NAME = XSDEditorPlugin.getXSDString("_UI_FACET_NAME"); // "Name"; -// public static final String FACET_VALUE = XSDEditorPlugin.getXSDString("_UI_FACET_VALUE"); // "Value"; -// public static final String FACET_OTHER = XSDEditorPlugin.getXSDString("_UI_FACET_FIXED"); // "Fixed"; -// -// protected FacetsTableLabelProvider facetsTableLabelProvider = new FacetsTableLabelProvider(); -// protected FacetsTableContentProvider facetsTableContentProvider = new FacetsTableContentProvider(); -// protected String[] columnProperties = { FACET_NAME, FACET_VALUE, FACET_OTHER }; -// protected CellEditor[] cellEditors; // these cellEditors are used when -// // non-whitespace facet is selected -// protected CellEditor[] altCellEditors; // these cellEditors are used when -// // whitespace facet is selected -// -// protected String[] whiteSpaceValues = new String[] { "", "preserve", "replace", "collapse" }; -// protected String[] trueFalseValues = new String[] { "", "false", "true" }; -// -// /** -// * @param parent -// */ -// public FacetViewer(Composite parent) -// { -// super(new Table(parent, SWT.FULL_SELECTION | SWT.SINGLE)); -// -// getTable().setLinesVisible(true); -// getTable().setHeaderVisible(true); -// -// addSelectionChangedListener(new SelectionChangedListener()); -// getTable().addMouseTrackListener(new MyMouseTrackListener()); -// -// setContentProvider(facetsTableContentProvider); -// setLabelProvider(facetsTableLabelProvider); -// setColumnProperties(columnProperties); -// -// setCellModifier(this); -// -// for (int i = 0; i < 3; i++) -// { -// TableColumn column = new TableColumn(getTable(), SWT.NONE, i); -// column.setText(columnProperties[i]); -// column.setAlignment(SWT.LEFT); -// column.setResizable(true); -// } -// -// cellEditors = new CellEditor[3]; -// altCellEditors = new CellEditor[3]; -// -// TableLayout layout = new TableLayout(); -// ColumnWeightData data = new ColumnWeightData(60, 80, true); -// layout.addColumnData(data); -// cellEditors[0] = null; -// -// ColumnWeightData data2 = new ColumnWeightData(120, 80, true); -// layout.addColumnData(data2); -// -// cellEditors[1] = new TextCellEditor(getTable()); -// XSDComboBoxPropertyDescriptor pd = new XSDComboBoxPropertyDescriptor("combo", "whitespace", whiteSpaceValues); -// altCellEditors[1] = pd.createPropertyEditor(getTable()); -// -// ColumnWeightData data3 = new ColumnWeightData(60, 60, true); -// layout.addColumnData(data3); -// -// XSDComboBoxPropertyDescriptor pd2 = new XSDComboBoxPropertyDescriptor("combo", "other", trueFalseValues); -// cellEditors[2] = pd2.createPropertyEditor(getTable()); -// altCellEditors[2] = pd2.createPropertyEditor(getTable()); -// -// getTable().setLayout(layout); -// setCellEditors(cellEditors); -// -// } -// -// /* -// * (non-Javadoc) -// * -// * @see org.eclipse.jface.viewers.ICellModifier#canModify(java.lang.Object, -// * java.lang.String) -// */ -// public boolean canModify(Object element, String property) -// { -// return property.equals(FACET_VALUE) || property.equals(FACET_OTHER); -// } -// -// /* -// * (non-Javadoc) -// * -// * @see org.eclipse.jface.viewers.ICellModifier#getValue(java.lang.Object, -// * java.lang.String) -// */ -// public Object getValue(Object element, String property) -// { -// int column = 0; -// if (property.equals(columnProperties[0])) -// { -// column = 0; -// } -// else if (property.equals(columnProperties[1])) -// { -// column = 1; -// } -// else if (property.equals(columnProperties[2])) -// { -// column = 2; -// } -// -// return facetsTableLabelProvider.getColumnText(element, column); -// } -// -// /* -// * (non-Javadoc) -// * -// * @see org.eclipse.jface.viewers.ICellModifier#modify(java.lang.Object, -// * java.lang.String, java.lang.Object) -// */ -// public void modify(Object element, String property, Object value) -// { -// XSDSimpleTypeDefinition xsdSimpleType = (XSDSimpleTypeDefinition) getInput(); -// TableItem item = (TableItem) element; -// if (item != null) -// { -// Object o = item.getData(); -// if (o != null) -// { -// if (o instanceof String) -// { -// String facet = (String) o; -// -// Element simpleTypeElement = xsdSimpleType.getElement(); -// XSDDOMHelper xsdDOMHelper = new XSDDOMHelper(); -// Element derivedByElement = xsdDOMHelper.getDerivedByElement(simpleTypeElement); -// -// String prefix = simpleTypeElement.getPrefix(); -// prefix = (prefix == null) ? "" : (prefix + ":"); -// -// Element childNodeElement = null; -// DOMAttribute valueAttr = null; -// -// XSDConstrainingFacet targetFacet = getXSDConstrainingFacet(facet); -// -// String newValue = ""; -// if (value != null && value instanceof String) -// { -// newValue = (String) value; -// } -// -// if (property.equals(columnProperties[1])) -// { -// if (targetFacet == null && newValue.length() > 0) -// { -// targetFacet = createFacet(facet); -// childNodeElement = (derivedByElement.getOwnerDocument()).createElementNS(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001, prefix + facet); -// valueAttr = new DOMAttribute(XSDConstants.VALUE_ATTRIBUTE, newValue); -// childNodeElement.setAttribute(valueAttr.getName(), valueAttr.getValue()); -// // add and format child -// derivedByElement.appendChild(childNodeElement); -// targetFacet.setElement(childNodeElement); -// XSDDOMHelper.formatChild(childNodeElement); -// -// // XSDSchemaHelper.updateElement(xsdSimpleType); -// } -// if (targetFacet == null) -// { -// return; -// } -// -// if (newValue.length() > 0) -// { -// targetFacet.setLexicalValue(newValue); -// -// if (targetFacet instanceof XSDMaxFacet || targetFacet instanceof XSDMinFacet) -// { -// if (targetFacet instanceof XSDMaxFacet) -// { -// if (targetFacet instanceof XSDMaxExclusiveFacet) -// { -// XSDMaxInclusiveFacet xsdMaxInclusiveFacet = xsdSimpleType.getMaxInclusiveFacet(); -// if (xsdMaxInclusiveFacet != null) -// { -// Element xsdMaxInclusiveFacetElement = xsdMaxInclusiveFacet.getElement(); -// XSDDOMHelper.removeNodeAndWhitespace(xsdMaxInclusiveFacetElement); -// } -// } -// else if (targetFacet instanceof XSDMaxInclusiveFacet) -// { -// XSDMaxExclusiveFacet xsdMaxExclusiveFacet = xsdSimpleType.getMaxExclusiveFacet(); -// if (xsdMaxExclusiveFacet != null) -// { -// Element xsdMaxExclusiveFacetElement = xsdMaxExclusiveFacet.getElement(); -// XSDDOMHelper.removeNodeAndWhitespace(xsdMaxExclusiveFacetElement); -// } -// } -// } -// else if (targetFacet instanceof XSDMinFacet) -// { -// if (targetFacet instanceof XSDMinExclusiveFacet) -// { -// XSDMinInclusiveFacet xsdMinInclusiveFacet = xsdSimpleType.getMinInclusiveFacet(); -// if (xsdMinInclusiveFacet != null) -// { -// Element xsdMinInclusiveFacetElement = xsdMinInclusiveFacet.getElement(); -// XSDDOMHelper.removeNodeAndWhitespace(xsdMinInclusiveFacetElement); -// } -// } -// else if (targetFacet instanceof XSDMinInclusiveFacet) -// { -// XSDMinExclusiveFacet xsdMinExclusiveFacet = xsdSimpleType.getMinExclusiveFacet(); -// if (xsdMinExclusiveFacet != null) -// { -// Element xsdMinExclusiveFacetElement = xsdMinExclusiveFacet.getElement(); -// XSDDOMHelper.removeNodeAndWhitespace(xsdMinExclusiveFacetElement); -// } -// } -// } -// } -// } -// else -// // newValue.length == 0 -// { -// Element targetFacetElement = targetFacet.getElement(); -// XSDDOMHelper.removeNodeAndWhitespace(targetFacetElement); -// } -// } -// else if (property.equals(columnProperties[2])) -// { -// if (targetFacet != null) -// { -// if (newValue.length() > 0) -// { -// targetFacet.getElement().setAttribute(XSDConstants.FIXED_ATTRIBUTE, newValue); -// } -// else -// { -// targetFacet.getElement().removeAttribute(XSDConstants.FIXED_ATTRIBUTE); -// } -// } -// } -// xsdSimpleType.setElement(simpleTypeElement); -// // xsdSimpleType.updateElement(); -// refresh(); -// } -// } -// } -// } -// -// private XSDConstrainingFacet getXSDConstrainingFacet(String facetString) -// { -// XSDSimpleTypeDefinition xsdSimpleType = (XSDSimpleTypeDefinition) getInput(); -// List list = xsdSimpleType.getFacetContents(); -// if (list == null) -// { -// return null; -// } -// Iterator iter = list.iterator(); -// XSDConstrainingFacet targetFacet = null; -// -// while (iter.hasNext()) -// { -// XSDConstrainingFacet xsdConstrainingFacet = (XSDConstrainingFacet) iter.next(); -// if (xsdConstrainingFacet.getFacetName().equals(facetString)) -// { -// targetFacet = xsdConstrainingFacet; -// break; -// } -// } -// return targetFacet; -// } -// -// private XSDConstrainingFacet createFacet(String facet) -// { -// XSDFactory factory = XSDSchemaBuildingTools.getXSDFactory(); -// XSDConstrainingFacet xsdFacet = null; -// if (facet.equals("length")) -// { -// xsdFacet = factory.createXSDLengthFacet(); -// } -// else if (facet.equals("minLength")) -// { -// xsdFacet = factory.createXSDMinLengthFacet(); -// } -// else if (facet.equals("maxLength")) -// { -// xsdFacet = factory.createXSDMaxLengthFacet(); -// } -// else if (facet.equals("minInclusive")) -// { -// xsdFacet = factory.createXSDMinInclusiveFacet(); -// } -// else if (facet.equals("minExclusive")) -// { -// xsdFacet = factory.createXSDMinExclusiveFacet(); -// } -// else if (facet.equals("maxInclusive")) -// { -// xsdFacet = factory.createXSDMaxInclusiveFacet(); -// } -// else if (facet.equals("maxExclusive")) -// { -// xsdFacet = factory.createXSDMaxExclusiveFacet(); -// } -// -// else if (facet.equals("totalDigits")) -// { -// xsdFacet = factory.createXSDTotalDigitsFacet(); -// } -// else if (facet.equals("fractionDigits")) -// { -// xsdFacet = factory.createXSDFractionDigitsFacet(); -// } -// else if (facet.equals("whiteSpace")) -// { -// xsdFacet = factory.createXSDWhiteSpaceFacet(); -// } -// return xsdFacet; -// } -// -// /** -// * Get the tooltip for the facet -// */ -// public String getToolTip(String facet) -// { -// String key = ""; -// if (facet.equals("length")) -// { -// key = "_UI_TOOLTIP_LENGTH"; -// } -// else if (facet.equals("minLength")) -// { -// key = "_UI_TOOLTIP_MIN_LEN"; -// } -// else if (facet.equals("maxLength")) -// { -// key = "_UI_TOOLTIP_MAX_LEN"; -// } -// -// else if (facet.equals("minInclusive")) -// { -// key = "_UI_TOOLTIP_MIN_INCLUSIVE"; -// } -// else if (facet.equals("minExclusive")) -// { -// key = "_UI_TOOLTIP_MIN_EXCLUSIVE"; -// } -// -// else if (facet.equals("maxInclusive")) -// { -// key = "_UI_TOOLTIP_MAX_INCLUSIVE"; -// } -// else if (facet.equals("maxExclusive")) -// { -// key = "_UI_TOOLTIP_MAX_EXCLUSIVE"; -// } -// -// else if (facet.equals("totalDigits")) -// { -// key = "_UI_TOOLTIP_TOTAL_DIGITS"; -// } -// else if (facet.equals("fractionDigits")) -// { -// key = "_UI_TOOLTIP_FRACTION_DIGITS"; -// } -// -// else if (facet.equals("whiteSpace")) -// { -// key = "_UI_TOOLTIP_WHITE_SPACE"; -// } -// -// return (key != null) ? XSDEditorPlugin.getXSDString(key) : ""; -// } -// -// /** -// * This listener detects which row is selected and add a tool tip for that row -// */ -// public class MyMouseTrackListener extends MouseTrackAdapter -// { -// public void mouseHover(MouseEvent e) -// { -// TableItem item = getTable().getItem(new Point(e.x, e.y)); -// if (item != null) -// { -// Object o = item.getData(); -// if (o != null) -// { -// String facetName = (String) o; -// getTable().setToolTipText(getToolTip(facetName)); -// } -// } -// } -// } -// -// /** -// * Based on the selection, detects if it is a white space or not, and add the -// * corresponding cell editors -// */ -// public class SelectionChangedListener implements ISelectionChangedListener -// { -// public void selectionChanged(SelectionChangedEvent event) -// { -// Object selection = event.getSelection(); -// if (selection instanceof StructuredSelection) -// { -// Object o = ((StructuredSelection) selection).getFirstElement(); -// if (o != null) -// { -// String facet = (String) o; -// if (facet.equals("whiteSpace")) -// { -// setCellEditors(altCellEditors); -// } -// else -// { -// setCellEditors(cellEditors); -// } -// } -// } -// } -// } -// -// class FacetsTableContentProvider implements IStructuredContentProvider -// { -// protected String facet; -// -// public void inputChanged(Viewer viewer, Object oldInput, Object newInput) -// { -// } -// -// public java.lang.Object[] getElements(java.lang.Object inputElement) -// { -// List v = new ArrayList(); -// XSDSimpleTypeDefinition inputXSDSimpleType = (XSDSimpleTypeDefinition) inputElement; -// XSDSimpleTypeDefinition base = inputXSDSimpleType.getPrimitiveTypeDefinition(); -// -// if (base != null) -// { -// Iterator validFacets = inputXSDSimpleType.getValidFacets().iterator(); -// while (validFacets.hasNext()) -// { -// String aValidFacet = (String) validFacets.next(); -// if (!(aValidFacet.equals("pattern") || aValidFacet.equals("enumeration"))) -// { -// v.add(aValidFacet); -// } -// } -// } -// return v.toArray(); -// } -// -// public void dispose() -// { -// } -// } -// -// class FacetsTableLabelProvider extends LabelProvider implements ITableLabelProvider -// { -// public Image getColumnImage(Object element, int columnIndex) -// { -// return null; -// } -// -// public String getColumnText(Object element, int columnIndex) -// { -// if (element instanceof String) -// { -// String value = null; -// XSDConstrainingFacet targetFacet = getXSDConstrainingFacet((String) element); -// switch (columnIndex) -// { -// case 0: -// { -// value = (String) element; -// break; -// } -// case 1: -// { -// if (targetFacet == null) -// { -// value = ""; -// } -// else -// { -// value = targetFacet.getLexicalValue(); -// } -// -// break; -// } -// case 2: -// { -// if (targetFacet == null) -// { -// value = ""; -// } -// else -// { -// Element elem = targetFacet.getElement(); -// value = elem.getAttribute(XSDConstants.FIXED_ATTRIBUTE); -// if (value == null) -// value = ""; -// } -// } -// } -// return value; -// } -// return ""; -// } -// } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/IDocumentChangedNotifier.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/IDocumentChangedNotifier.java deleted file mode 100644 index d5fb565be8..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/IDocumentChangedNotifier.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.eclipse.wst.sse.core.internal.provisional.INodeAdapter; - -public interface IDocumentChangedNotifier -{ - public void addListener(INodeAdapter adapter); - public void removeListener(INodeAdapter adapter); -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/MultiplicitySection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/MultiplicitySection.java deleted file mode 100644 index 483d14e0f9..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/MultiplicitySection.java +++ /dev/null @@ -1,211 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Event; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateMaxOccursCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateMinOccursCommand; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDParticle; -import org.eclipse.xsd.XSDParticleContent; -import org.eclipse.xsd.util.XSDConstants; -import org.w3c.dom.Element; - - -public class MultiplicitySection extends AbstractSection -{ - protected CCombo minCombo, maxCombo; - protected Button listButton; - protected Button requiredButton; - protected boolean isRequired; - - public MultiplicitySection() - { - super(); - } - - protected void createContents(Composite parent) - { - } - - - public void doHandleEvent(Event event) - { - if (event.widget == minCombo) - { - updateMinAttribute(); - } - else if (event.widget == maxCombo) - { - updateMaxAttribute(); - } - } - - public void doWidgetSelected(SelectionEvent e) - { - if (e.widget == minCombo) - { - updateMinAttribute(); - } - else if (e.widget == maxCombo) - { - updateMaxAttribute(); - } - } - - protected void updateMaxAttribute() - { - setErrorMessage(null); - XSDParticle particle = null; - - if (input instanceof XSDParticleContent) - { - particle = getAssociatedParticle((XSDParticleContent) input); - } - if (particle != null) - { - String newValue = maxCombo.getText().trim(); - - if (newValue.length() == 0) - { - particle.unsetMaxOccurs(); - return; - } - try - { - int newMax = 1; - if (newValue.equals("unbounded") || newValue.equals("*")) //$NON-NLS-1$ - { - newMax = XSDParticle.UNBOUNDED; - } - else - { - if (newValue.length() > 0) - { - newMax = Integer.parseInt(newValue); - } - } - setListenerEnabled(false); - UpdateMaxOccursCommand command = new UpdateMaxOccursCommand("Maximum Occurrence Change", particle, newMax); - getCommandStack().execute(command); - setListenerEnabled(true); - - } - catch (NumberFormatException e) - { - setErrorMessage("Invalid value for maximum occurrence"); - } - } - } - - protected void updateMinAttribute() - { - setErrorMessage(null); - XSDParticle particle = null; - - if (input instanceof XSDParticleContent) - { - particle = getAssociatedParticle((XSDParticleContent) input); - } - if (particle != null) - { - String newValue = minCombo.getText(); - isRequired = false; - if (newValue.length() == 0) - { - particle.unsetMinOccurs(); - } - try - { - int newMin = 1; - if (newValue.equals("unbounded") || newValue.equals("*")) //$NON-NLS-1$ - { - newMin = XSDParticle.UNBOUNDED; - isRequired = true; - } - else - { - newMin = Integer.parseInt(newValue); - isRequired = newMin > 0; - } - UpdateMinOccursCommand command = new UpdateMinOccursCommand("Minimum Occurrence Change", particle, newMin); - getCommandStack().execute(command); - } - catch (NumberFormatException e) - { - - } - } - } - - protected void refreshMinMax() - { - boolean refreshMinText = true; - boolean refreshMaxText = true; - if (minCombo.isFocusControl()) - { - refreshMinText = false; - } - if (maxCombo.isFocusControl()) - { - refreshMaxText = false; - } - if (refreshMinText) - { - minCombo.setText(""); //$NON-NLS-1$ - } - if (refreshMaxText) - { - maxCombo.setText(""); //$NON-NLS-1$ - } - - if (input != null) - { - if (input instanceof XSDParticleContent) - { - XSDParticle particle = getAssociatedParticle((XSDParticleContent) input); - if (particle != null) - { - // minText.setText(String.valueOf(particle.getMinOccurs())); - // maxText.setText(String.valueOf(particle.getMaxOccurs())); - Element element = particle.getElement(); - if (element != null) - { - String min = element.getAttribute(XSDConstants.MINOCCURS_ATTRIBUTE); - String max = element.getAttribute(XSDConstants.MAXOCCURS_ATTRIBUTE); - if (min != null && refreshMinText) - { - minCombo.setText(min); - } - if (max != null && refreshMaxText) - { - maxCombo.setText(max); - } - } - } - } - } - } - - protected XSDParticle getAssociatedParticle(XSDParticleContent particleContent) - { - XSDConcreteComponent xsdComp = particleContent.getContainer(); - if (xsdComp instanceof XSDParticle) - { - return (XSDParticle) xsdComp; - } - return null; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SchemaLocationSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SchemaLocationSection.java deleted file mode 100644 index 54646d3001..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SchemaLocationSection.java +++ /dev/null @@ -1,202 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.eclipse.core.resources.IFile; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.ViewerFilter; -import org.eclipse.jface.window.Window; -import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CLabel; -import org.eclipse.swt.custom.StyledText; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.IFileEditorInput; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.common.ui.internal.viewers.ResourceFilter; -import org.eclipse.wst.common.uriresolver.internal.util.URIHelper; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.wst.xsd.ui.internal.wizards.XSDSelectIncludeFileWizard; -import org.eclipse.xsd.XSDInclude; -import org.eclipse.xsd.XSDRedefine; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.impl.XSDIncludeImpl; -import org.eclipse.xsd.impl.XSDRedefineImpl; -import org.w3c.dom.Element; - -public class SchemaLocationSection extends CommonDirectivesSection -{ - IWorkbenchPart part; - - /** - * - */ - public SchemaLocationSection() - { - super(); - } - - /** - * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory) - */ - public void createContents(Composite parent) - { - composite = getWidgetFactory().createFlatFormComposite(parent); - - GridLayout gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 3; - composite.setLayout(gridLayout); - - GridData data = new GridData(); - - // Create Schema Location Label - CLabel schemaLocationLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_SCHEMA_LOCATION")); //$NON-NLS-1$ - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - schemaLocationLabel.setLayoutData(data); - - // Create Schema Location Text - schemaLocationText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$ - schemaLocationText.setEditable(true); - applyAllListeners(schemaLocationText); - - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - schemaLocationText.setLayoutData(data); - - // Create Wizard Button - wizardButton = getWidgetFactory().createButton(composite, "", SWT.NONE); //$NON-NLS-1$ - wizardButton.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); //$NON-NLS-1$ - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - wizardButton.setLayoutData(data); - wizardButton.addSelectionListener(this); - - // error text - errorText = new StyledText(composite, SWT.FLAT); - errorText.setEditable(false); - errorText.setEnabled(false); - errorText.setText(""); - - data = new GridData(); - data.horizontalAlignment = GridData.FILL; - data.horizontalSpan = 3; - data.grabExcessHorizontalSpace = true; - errorText.setLayoutData(data); - - } - - public void widgetSelected(SelectionEvent event) - { - if (event.widget == wizardButton) - { - Shell shell = Display.getCurrent().getActiveShell(); - - IFile currentIFile = ((IFileEditorInput)getActiveEditor().getEditorInput()).getFile(); - ViewerFilter filter = new ResourceFilter(new String[] { ".xsd" }, //$NON-NLS-1$ - new IFile[] { currentIFile }, - null); - - XSDSelectIncludeFileWizard fileSelectWizard = - new XSDSelectIncludeFileWizard(xsdSchema, true, - XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_SCHEMA"), //$NON-NLS-1$ - XSDEditorPlugin.getXSDString("_UI_FILEDIALOG_SELECT_XML_DESC"), //$NON-NLS-1$ - filter, - (IStructuredSelection) getSelection()); - - WizardDialog wizardDialog = new WizardDialog(shell, fileSelectWizard); - wizardDialog.create(); - wizardDialog.setBlockOnOpen(true); - int result = wizardDialog.open(); - - String value = schemaLocationText.getText(); - if (result == Window.OK) - { - errorText.setText(""); - IFile selectedIFile = fileSelectWizard.getResultFile(); - String schemaFileString = value; - if (selectedIFile != null) - { - schemaFileString = URIHelper.getRelativeURI(selectedIFile.getLocation(), currentIFile.getLocation()); - } - else - { - schemaFileString = fileSelectWizard.getURL(); - } - - handleSchemaLocationChange(schemaFileString, fileSelectWizard.getNamespace(), null); - refresh(); - } - } - } - - /* - * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh() - */ - public void refresh() - { - setListenerEnabled(false); - - Element element = null; - if (input instanceof XSDInclude) - { - element = ((XSDIncludeImpl) input).getElement(); - } - else if (input instanceof XSDRedefine) - { - element = ((XSDRedefineImpl) input).getElement(); - } - - if (element != null) - { - String location = ""; //$NON-NLS-1$ - location = element.getAttribute("schemaLocation"); //$NON-NLS-1$ - if (location == null) - { - location = ""; - } - schemaLocationText.setText(location); - } - - setListenerEnabled(true); - } - - /* (non-Javadoc) - * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#shouldUseExtraSpace() - */ - public boolean shouldUseExtraSpace() - { - return true; - } - - protected void handleSchemaLocationChange(String schemaFileString, String namespace, XSDSchema externalSchema) - { - if (input instanceof XSDInclude) - { - Element element = ((XSDIncludeImpl) input).getElement(); - element.setAttribute("schemaLocation", schemaFileString); //$NON-NLS-1$ - } - else if (input instanceof XSDRedefine) - { - Element element = ((XSDRedefineImpl) input).getElement(); - element.setAttribute("schemaLocation", schemaFileString); //$NON-NLS-1$ - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SimpleContentUnionMemberTypesDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SimpleContentUnionMemberTypesDialog.java deleted file mode 100644 index 9c674cd3d3..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SimpleContentUnionMemberTypesDialog.java +++ /dev/null @@ -1,311 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2001, 2004 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import java.util.Iterator; -import java.util.List; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.swt.widgets.TableItem; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.wst.xsd.ui.internal.util.TypesHelper; -import org.eclipse.wst.xsd.ui.internal.util.ViewUtility; -import org.eclipse.wst.xsd.ui.internal.widgets.TypeSection; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.util.XSDConstants; - - -public class SimpleContentUnionMemberTypesDialog extends Dialog implements SelectionListener -{ - XSDSimpleTypeDefinition simpleType; - /** - * @param parentShell - */ - public SimpleContentUnionMemberTypesDialog(Shell parentShell, XSDSimpleTypeDefinition simpleType) - { - super(parentShell); - this.simpleType = simpleType; - } - - Table table; - TypeSection typeSection; - Button addButton, removeButton; - org.eclipse.swt.widgets.List memberTypesList; - - private String result; - - protected void configureShell(Shell shell) - { - super.configureShell(shell); - } - - protected void buttonPressed(int buttonId) - { - if (buttonId == Dialog.OK) - { - StringBuffer sb = new StringBuffer(); - int length = memberTypesList.getItemCount(); - for (int i=0 ; i < length; i++) - { - sb.append(memberTypesList.getItem(i)); - if (i < length - 1) - { - sb.append(" "); - } - } - result = sb.toString(); - } - super.buttonPressed(buttonId); - } - - public String getResult() { return result; } - - // - // Create the controls - // - public Control createDialogArea(Composite parent) - { - Composite client = (Composite)super.createDialogArea(parent); - getShell().setText("Union " + XSDConstants.MEMBERTYPES_ATTRIBUTE); - - Label instructions = new Label(client, SWT.LEFT | SWT.WRAP); - instructions.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_SELECT_MEMBERTYPES")); - - Composite columnsComposite = new Composite(client, SWT.NONE); - GridLayout ccGL = new GridLayout(); - ccGL.verticalSpacing = 0; - ccGL.horizontalSpacing = 0; - ccGL.marginHeight = 0; - ccGL.marginWidth = 0; - ccGL.makeColumnsEqualWidth = true; - ccGL.numColumns = 3; - columnsComposite.setLayout(ccGL); - - GridData ccGD = new GridData(); - ccGD.grabExcessHorizontalSpace = true; - ccGD.horizontalAlignment = GridData.FILL; - columnsComposite.setLayoutData(ccGD); - - typeSection = new TypeSection(columnsComposite); - typeSection.setShowUserComplexType(false); - - typeSection.createClient(columnsComposite); - typeSection.getSimpleType().setSelection(false); - typeSection.getSimpleType().addSelectionListener(this); - typeSection.getUserSimpleType().addSelectionListener(this); - - ViewUtility.createHorizontalFiller(columnsComposite, 1); - - Label memberListLabel = new Label(columnsComposite, SWT.LEFT); - memberListLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES_VALUE")); - - Composite dataComposite = new Composite(client, SWT.NONE); - GridLayout dcGL = new GridLayout(); - dcGL.verticalSpacing = 0; - dcGL.marginHeight = 0; - dcGL.marginWidth = 0; - dcGL.numColumns = 3; - dataComposite.setLayout(dcGL); - - GridData dcGD = new GridData(); - dcGD.grabExcessHorizontalSpace = true; - dcGD.grabExcessVerticalSpace = true; - dataComposite.setLayoutData(dcGD); - - table = new Table(dataComposite, - SWT.SINGLE | SWT.FULL_SELECTION | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); - table.setHeaderVisible(false); - table.setLinesVisible(true); - GridData gd2 = new GridData(); - gd2.grabExcessHorizontalSpace = true; - gd2.grabExcessVerticalSpace = true; - gd2.horizontalAlignment = GridData.FILL; - gd2.verticalAlignment = GridData.FILL; - gd2.heightHint = 200; - gd2.widthHint = 200; - table.setLayoutData(gd2); - - // Fill table - handleSetInput(); - table.getItemCount(); - - TableColumn tc = new TableColumn(table, SWT.LEFT); - tc.setWidth(200); - tc.setResizable(true); - - Composite buttonComposite = new Composite(dataComposite, SWT.NONE); - GridLayout bcGL = new GridLayout(); - bcGL.numColumns = 1; - buttonComposite.setLayout(bcGL); - addButton = new Button(buttonComposite, SWT.PUSH); - addButton.setText(">"); - addButton.addSelectionListener(this); - removeButton = new Button(buttonComposite, SWT.PUSH); - removeButton.setText("<"); - removeButton.addSelectionListener(this); - - Composite listComposite = new Composite(dataComposite, SWT.NONE); - GridLayout mtGL = new GridLayout(); - mtGL.numColumns = 1; - mtGL.marginHeight = 0; - mtGL.marginWidth = 0; - mtGL.horizontalSpacing = 0; - mtGL.verticalSpacing = 0; - listComposite.setLayout(mtGL); - - GridData mtGD = new GridData(); - mtGD.grabExcessHorizontalSpace = true; - mtGD.grabExcessVerticalSpace = true; - mtGD.verticalAlignment = GridData.FILL; - mtGD.horizontalAlignment = GridData.FILL; - listComposite.setLayoutData(mtGD); - - memberTypesList = new org.eclipse.swt.widgets.List(listComposite, SWT.MULTI | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER); - GridData mtlGD = new GridData(); - mtlGD.grabExcessHorizontalSpace = true; - mtlGD.grabExcessVerticalSpace = true; - mtlGD.verticalAlignment = GridData.FILL; - mtlGD.horizontalAlignment = GridData.FILL; - mtlGD.heightHint = 200; - mtlGD.widthHint = 200; - memberTypesList.setLayoutData(mtlGD); - - initializeMemberListContent(); - return client; - } - - private void initializeMemberListContent() - { -// String result = element.getAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE); -// if (result == null) -// { -// return; -// } -// StringTokenizer token = new StringTokenizer(result); -// while (token.hasMoreTokens()) -// { -// memberTypesList.add(token.nextToken()); -// } - XSDSchema schema = simpleType.getSchema(); - for (Iterator i = simpleType.getMemberTypeDefinitions().iterator(); i.hasNext(); ) - { - String name = ((XSDSimpleTypeDefinition)i.next()).getQName(schema); - if (name != null) - memberTypesList.add(name); - } - } - - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) - */ - public void widgetSelected(SelectionEvent e) - { - if (e.widget == typeSection.getSimpleType() && typeSection.getSimpleType().getSelection()) - { - populateBuiltInType(); - } - else if (e.widget == typeSection.getUserSimpleType() && typeSection.getUserSimpleType().getSelection()) - { - populateUserSimpleType(false); - } - else if (e.widget == addButton) - { - TableItem[] items = table.getItems(); - int selection = table.getSelectionIndex(); - if (items != null && items.length > 0 && selection >= 0) - { - String typeToAdd = items[selection].getData().toString(); - if (memberTypesList.indexOf(typeToAdd) < 0) - { - memberTypesList.add(items[selection].getData().toString()); - } - } - } - else if (e.widget == removeButton) - { - String[] typesToRemove = memberTypesList.getSelection(); - for (int i=0; i < typesToRemove.length; i++) - { - memberTypesList.remove(typesToRemove[i]); - } - } - } - - /* (non-Javadoc) - * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) - */ - public void widgetDefaultSelected(SelectionEvent e) - { - } - - public void handleSetInput() - { - populateBuiltInType(); - } - - public void populateBuiltInType() - { - table.removeAll(); - List items = getBuiltInTypeNamesList(); - for (int i = 0; i < items.size(); i++) - { - TableItem item = new TableItem(table, SWT.NONE); - item.setText(items.get(i).toString()); - item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif")); - item.setData(items.get(i)); - } - } - - public void populateUserSimpleType(boolean showAnonymous) - { - table.removeAll(); - if (showAnonymous) - { - TableItem anonymousItem = new TableItem(table, SWT.NONE); - anonymousItem.setText("**anonymous**"); - anonymousItem.setData("**anonymous**"); - } - List items = getUserSimpleTypeNamesList(); - for (int i = 0; i < items.size(); i++) - { - TableItem item = new TableItem(table, SWT.NONE); - item.setText(items.get(i).toString()); - item.setImage(XSDEditorPlugin.getXSDImage("icons/XSDSimpleType.gif")); - item.setData(items.get(i)); - } - } - - public java.util.List getBuiltInTypeNamesList() - { - TypesHelper helper = new TypesHelper(simpleType.getSchema()); - return helper.getBuiltInTypeNamesList(); - } - - public java.util.List getUserSimpleTypeNamesList() - { - TypesHelper helper = new TypesHelper(simpleType.getSchema()); - return helper.getUserSimpleTypeNamesList(); - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SpecificConstraintsWidget.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SpecificConstraintsWidget.java deleted file mode 100644 index 1535f0b864..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/SpecificConstraintsWidget.java +++ /dev/null @@ -1,667 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.StringTokenizer; - -import org.eclipse.gef.commands.CommandStack; -import org.eclipse.gef.commands.CompoundCommand; -import org.eclipse.jface.viewers.CellEditor; -import org.eclipse.jface.viewers.ColumnWeightData; -import org.eclipse.jface.viewers.ICellModifier; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.ITableLabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TableLayout; -import org.eclipse.jface.viewers.TextCellEditor; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.window.Window; -import org.eclipse.jface.wizard.WizardDialog; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Listener; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableColumn; -import org.eclipse.swt.widgets.TableItem; -import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; -import org.eclipse.wst.common.ui.internal.viewers.NavigableTableViewer; -import org.eclipse.wst.xsd.ui.internal.common.commands.AddEnumerationsCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.ChangeToLocalSimpleTypeCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.DeleteCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.SetXSDFacetValueCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateXSDPatternFacetCommand; -import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.wst.xsd.ui.internal.widgets.EnumerationsDialog; -import org.eclipse.wst.xsd.ui.internal.wizards.RegexWizard; -import org.eclipse.xsd.XSDEnumerationFacet; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDFeature; -import org.eclipse.xsd.XSDPatternFacet; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.util.XSDConstants; -import org.w3c.dom.Element; - -public class SpecificConstraintsWidget implements SelectionListener, Listener -{ - public static int ENUMERATION = 0; - public static int PATTERN = 1; - - int kind; - ConstraintsTableViewer constraintsTableViewer; - Button addButton; - Button addUsingDialogButton; - Button deleteButton; - Button editButton; - Composite composite; - boolean isEnabled; - TabbedPropertySheetWidgetFactory factory; - XSDSimpleTypeDefinition input; - XSDFeature feature; - boolean isReadOnly; - CommandStack commandStack; - XSDFacetSection facetSection; - - public SpecificConstraintsWidget(Composite composite, TabbedPropertySheetWidgetFactory factory, XSDFeature feature, XSDSimpleTypeDefinition input, XSDFacetSection facetSection) - { - this.factory = factory; - this.input = input; - this.composite = composite; - this.feature = feature; - this.facetSection = facetSection; - createControl(composite); - } - - public void setCommandStack(CommandStack commandStack) - { - this.commandStack = commandStack; - } - - public void setIsReadOnly(boolean isReadOnly) - { - this.isReadOnly = isReadOnly; - } - - public TabbedPropertySheetWidgetFactory getWidgetFactory() - { - return factory; - } - - public Control getControl() - { - return composite; - } - - public void setEnabled(boolean isEnabled) - { - this.isEnabled = isEnabled; - addButton.setEnabled(isEnabled); - addUsingDialogButton.setEnabled(isEnabled); - editButton.setEnabled(isEnabled); - constraintsTableViewer.getTable().setEnabled(isEnabled); - composite.setEnabled(isEnabled); - } - - public Control createControl(Composite parent) - { - composite = factory.createFlatFormComposite(parent); - GridData data = new GridData(); - - GridLayout gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 2; - composite.setLayout(gridLayout); - - constraintsTableViewer = new ConstraintsTableViewer(getWidgetFactory().createTable(composite, SWT.MULTI | SWT.FULL_SELECTION)); - constraintsTableViewer.setInput(input); - Table table = constraintsTableViewer.getTable(); - table.addSelectionListener(this); - data.horizontalAlignment = GridData.FILL; - data.verticalAlignment = GridData.FILL; - data.grabExcessHorizontalSpace = true; - data.widthHint = 150; - data.grabExcessVerticalSpace = true; - table.setLayoutData(data); - table.addListener(SWT.Resize, this); - - Composite buttonComposite = getWidgetFactory().createComposite(composite, SWT.FLAT); - GridLayout buttonCompositeLayout = new GridLayout(); - buttonCompositeLayout.marginTop = 0; - buttonCompositeLayout.marginBottom = 0; - buttonCompositeLayout.numColumns = 1; - buttonComposite.setLayout(buttonCompositeLayout); - data = new GridData(); - data.horizontalAlignment = GridData.FILL; - data.grabExcessHorizontalSpace = false; - buttonComposite.setLayoutData(data); - - - addButton = getWidgetFactory().createButton(buttonComposite, "Add", SWT.PUSH); - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - data.verticalAlignment = GridData.BEGINNING; - addButton.setLayoutData(data); - addButton.addSelectionListener(this); - - addUsingDialogButton = getWidgetFactory().createButton(buttonComposite, "Add...", SWT.PUSH); - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - data.verticalAlignment = GridData.BEGINNING; - addUsingDialogButton.setLayoutData(data); - addUsingDialogButton.addSelectionListener(this); - - editButton = getWidgetFactory().createButton(buttonComposite, "Edit...", SWT.PUSH); - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - editButton.setLayoutData(data); - editButton.setEnabled(false); - editButton.addSelectionListener(this); - - - deleteButton = getWidgetFactory().createButton(buttonComposite, "Delete", SWT.PUSH); - - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - deleteButton.setLayoutData(data); - deleteButton.setEnabled(false); - deleteButton.addSelectionListener(this); - - - return composite; - } - - public void handleEvent(Event event) - { - Table table = constraintsTableViewer.getTable(); - if (event.type == SWT.Resize && event.widget == table) - { - TableColumn tableColumn = table.getColumn(0); - tableColumn.setWidth(table.getSize().x); - } - } - - public void setInput(Object input) - { - constraintsTableViewer.setInput(input); - if (isReadOnly) - { - composite.setEnabled(false); - } - else - { - composite.setEnabled(true); - } -// constraintsTableViewer.refresh(); - } - - public void widgetSelected(SelectionEvent e) - { - XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input; - Element element = st.getElement(); - - if (e.widget == addButton) - { - List enumList = st.getEnumerationFacets(); - StringBuffer newName = new StringBuffer("value1"); //$NON-NLS-1$ - int suffix = 1; - for (Iterator i = enumList.iterator(); i.hasNext();) - { - XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) i.next(); - String value = enumFacet.getLexicalValue(); - if (value != null) - { - if (value.equals(newName.toString())) - { - suffix++; - newName = new StringBuffer("value" + String.valueOf(suffix)); //$NON-NLS-1$ - } - } - } - - if (kind == ENUMERATION) - { - CompoundCommand compoundCommand = new CompoundCommand(); - XSDSimpleTypeDefinition targetSimpleType = null; - if (feature != null) - { - XSDSimpleTypeDefinition anonymousSimpleType = XSDCommonUIUtils.getAnonymousSimpleType(feature, input); - if (anonymousSimpleType == null) - { - anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition(); - anonymousSimpleType.setBaseTypeDefinition(input); - - ChangeToLocalSimpleTypeCommand changeToAnonymousCommand = new ChangeToLocalSimpleTypeCommand("Change pattern", (XSDFeature) feature); - changeToAnonymousCommand.setAnonymousSimpleType(anonymousSimpleType); - compoundCommand.add(changeToAnonymousCommand); - input = anonymousSimpleType; - } - targetSimpleType = anonymousSimpleType; - } - else - { - targetSimpleType = input; - } - - AddEnumerationsCommand command = new AddEnumerationsCommand("Add Enumeration", targetSimpleType); - command.setValue(newName.toString()); - compoundCommand.add(command); - commandStack.execute(compoundCommand); - setInput(input); - constraintsTableViewer.refresh(); - int newItemIndex = constraintsTableViewer.getTable().getItemCount() - 1; - constraintsTableViewer.editElement(constraintsTableViewer.getElementAt(newItemIndex), 0); - } - } - else if (e.widget == addUsingDialogButton) - { - Display display = Display.getCurrent(); - // if it is null, get the default one - display = display == null ? Display.getDefault() : display; - Shell shell = display.getActiveShell(); - - if (kind == PATTERN) - { - String initialValue = ""; //$NON-NLS-1$ - RegexWizard wizard = new RegexWizard(initialValue); - - WizardDialog wizardDialog = new WizardDialog(shell, wizard); - wizardDialog.setBlockOnOpen(true); - wizardDialog.create(); - - int result = wizardDialog.open(); - - if (result == Window.OK) - { - String newPattern = wizard.getPattern(); - CompoundCommand compoundCommand = new CompoundCommand(); - XSDSimpleTypeDefinition targetSimpleType = null; - if (feature != null) - { - XSDSimpleTypeDefinition anonymousSimpleType = XSDCommonUIUtils.getAnonymousSimpleType(feature, input); - if (anonymousSimpleType == null) - { - anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition(); - anonymousSimpleType.setBaseTypeDefinition(input); - - ChangeToLocalSimpleTypeCommand changeToAnonymousCommand = new ChangeToLocalSimpleTypeCommand("Change pattern", (XSDFeature) feature); - changeToAnonymousCommand.setAnonymousSimpleType(anonymousSimpleType); - compoundCommand.add(changeToAnonymousCommand); - input = anonymousSimpleType; - } - targetSimpleType = anonymousSimpleType; - } - else - { - targetSimpleType = input; - } - - UpdateXSDPatternFacetCommand command = new UpdateXSDPatternFacetCommand("Add pattern", targetSimpleType, UpdateXSDPatternFacetCommand.ADD); - command.setValue(newPattern); - setInput(input); - compoundCommand.add(command); - commandStack.execute(compoundCommand); - facetSection.doSetInput(); - } - constraintsTableViewer.refresh(); - } - else - { - EnumerationsDialog dialog = new EnumerationsDialog(shell); - dialog.setBlockOnOpen(true); - int result = dialog.open(); - - if (result == Window.OK) - { - String text = dialog.getText(); - String delimiter = dialog.getDelimiter(); - StringTokenizer tokenizer = new StringTokenizer(text, delimiter); - CompoundCommand compoundCommand = new CompoundCommand("Add Enumerations"); - - XSDSimpleTypeDefinition targetSimpleType = null; - if (feature != null) - { - XSDSimpleTypeDefinition anonymousSimpleType = XSDCommonUIUtils.getAnonymousSimpleType(feature, input); - if (anonymousSimpleType == null) - { - anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition(); - anonymousSimpleType.setBaseTypeDefinition(input); - - ChangeToLocalSimpleTypeCommand changeToAnonymousCommand = new ChangeToLocalSimpleTypeCommand("", (XSDFeature) feature); - changeToAnonymousCommand.setAnonymousSimpleType(anonymousSimpleType); - compoundCommand.add(changeToAnonymousCommand); - input = anonymousSimpleType; - } - targetSimpleType = anonymousSimpleType; - } - else - { - targetSimpleType = input; - } - - while (tokenizer.hasMoreTokens()) - { - String token = tokenizer.nextToken(); - if (dialog.isPreserveWhitespace() == false) - { - token = token.trim(); - } - AddEnumerationsCommand command = new AddEnumerationsCommand("Add Enumerations", targetSimpleType); - command.setValue(token); - compoundCommand.add(command); - } - commandStack.execute(compoundCommand); - } - //setInput(input); - facetSection.doSetInput(); - constraintsTableViewer.refresh(); - } - } - else if (e.widget == deleteButton) - { - StructuredSelection selection = (StructuredSelection) constraintsTableViewer.getSelection(); - CompoundCommand compoundCommand = new CompoundCommand(); - if (selection != null) - { - Iterator i = selection.iterator(); - if (selection.size() > 0) - { - compoundCommand.setLabel("Delete Constraints"); - } - else - { - compoundCommand.setLabel("Delete Pattern"); - } - while (i.hasNext()) - { - Object obj = i.next(); - if (obj != null) - { - if (obj instanceof XSDPatternFacet) - { - UpdateXSDPatternFacetCommand command = new UpdateXSDPatternFacetCommand("", input, UpdateXSDPatternFacetCommand.DELETE); - command.setPatternToEdit((XSDPatternFacet)obj); - compoundCommand.add(command); - } - else if (obj instanceof XSDEnumerationFacet) - { - XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) obj; - DeleteCommand deleteCommand = new DeleteCommand("Delete Enumeration", enumFacet); - compoundCommand.add(deleteCommand); - } - } - } - commandStack.execute(compoundCommand); - constraintsTableViewer.refresh(); - - if (constraintsTableViewer.getTable().getItemCount() == 0) - { - editButton.setEnabled(false); - deleteButton.setEnabled(false); - } - } - } - else if (e.widget == editButton) - { - StructuredSelection selection = (StructuredSelection) constraintsTableViewer.getSelection(); - if (selection != null) - { - Object obj = selection.getFirstElement(); - if (obj instanceof XSDPatternFacet) - { - XSDPatternFacet pattern = (XSDPatternFacet) obj; - String initialValue = pattern.getLexicalValue(); - if (initialValue == null) - { - initialValue = ""; //$NON-NLS-1$ - } - - Shell shell = Display.getCurrent().getActiveShell(); - - RegexWizard wizard = new RegexWizard(initialValue); - - WizardDialog wizardDialog = new WizardDialog(shell, wizard); - wizardDialog.setBlockOnOpen(true); - wizardDialog.create(); - - int result = wizardDialog.open(); - - if (result == Window.OK) - { - String newPattern = wizard.getPattern(); - element.setAttribute(XSDConstants.VALUE_ATTRIBUTE, newPattern); - pattern.setLexicalValue(newPattern); - constraintsTableViewer.refresh(); - } - } - } - } - else if (e.widget == constraintsTableViewer.getTable()) - { - StructuredSelection selection = (StructuredSelection) constraintsTableViewer.getSelection(); - if (selection.getFirstElement() != null) - { - editButton.setEnabled(true); - deleteButton.setEnabled(true); - } - else - { - editButton.setEnabled(false); - deleteButton.setEnabled(false); - } - } - } - - public void widgetDefaultSelected(SelectionEvent e) - { - - } - - - public void setConstraintKind(int kind) - { - this.kind = kind; - constraintsTableViewer.setInput(input); - constraintsTableViewer.refresh(); - } - - public void doModify(Object element, String property, Object value) - { - if (element instanceof TableItem && (value != null)) - { - TableItem item = (TableItem) element; - - if (item.getData() instanceof XSDPatternFacet) - { - XSDPatternFacet patternFacet = (XSDPatternFacet) item.getData(); - patternFacet.setLexicalValue((String) value); - - item.setData(patternFacet); - item.setText((String) value); - } - else if (item.getData() instanceof XSDEnumerationFacet) - { - XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) item.getData(); - SetXSDFacetValueCommand command = new SetXSDFacetValueCommand("Set Enumeration Value", enumFacet); - command.setValue((String) value); - commandStack.execute(command); - item.setData(enumFacet); - item.setText((String) value); - } - } - } - - public Object doGetValue(Object element, String property) - { - if (element instanceof XSDPatternFacet) - { - XSDPatternFacet patternFacet = (XSDPatternFacet) element; - String value = patternFacet.getLexicalValue(); - if (value == null) - value = ""; //$NON-NLS-1$ - return value; - } - else if (element instanceof XSDEnumerationFacet) - { - XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) element; - String value = enumFacet.getLexicalValue(); - if (value == null) - value = ""; //$NON-NLS-1$ - return value; - } - - return ""; //$NON-NLS-1$ - } - - class ConstraintsTableViewer extends NavigableTableViewer implements ICellModifier - { - protected String[] columnProperties = { "Pattern" }; - - protected CellEditor[] cellEditors; - - Table table; - - public ConstraintsTableViewer(Table table) - { - super(table); - table = getTable(); - - table.setLinesVisible(true); - - setContentProvider(new ConstraintsContentProvider()); - setLabelProvider(new ConstraintsTableLabelProvider()); - setColumnProperties(columnProperties); - - setCellModifier(this); - - TableColumn column = new TableColumn(table, SWT.NONE, 0); - column.setText(columnProperties[0]); - column.setAlignment(SWT.LEFT); - column.setResizable(true); - - cellEditors = new CellEditor[1]; - - TableLayout layout = new TableLayout(); - ColumnWeightData data = new ColumnWeightData(100); - - layout.addColumnData(data); - cellEditors[0] = new TextCellEditor(table); - - getTable().setLayout(layout); - setCellEditors(cellEditors); - } - - public boolean canModify(Object element, String property) - { - return true; - } - - public void modify(Object element, String property, Object value) - { - doModify(element, property, value); - } - - public Object getValue(Object element, String property) - { - return doGetValue(element, property); - } - - } - - class ConstraintsContentProvider implements IStructuredContentProvider - { - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) - { - } - - public java.lang.Object[] getElements(java.lang.Object inputElement) - { - java.util.List list = new ArrayList(); - if (inputElement instanceof XSDSimpleTypeDefinition) - { - XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) inputElement; - if (kind == PATTERN) - { - return st.getPatternFacets().toArray(); - } - else - { - return st.getEnumerationFacets().toArray(); - } - } - return list.toArray(); - } - - public void dispose() - { - } - } - - class ConstraintsTableLabelProvider extends LabelProvider implements ITableLabelProvider - { - public ConstraintsTableLabelProvider() - { - - } - - public Image getColumnImage(Object element, int columnIndex) - { - if (kind == PATTERN) - { - return XSDEditorPlugin.getXSDImage("icons/XSDSimplePattern.gif"); //$NON-NLS-1$ - } - else - { - return XSDEditorPlugin.getXSDImage("icons/XSDSimpleEnum.gif"); - } - } - - public String getColumnText(Object element, int columnIndex) - { - if (element instanceof XSDPatternFacet) - { - XSDPatternFacet pattern = (XSDPatternFacet) element; - String value = pattern.getLexicalValue(); - if (value == null) - value = ""; //$NON-NLS-1$ - return value; - } - else if (element instanceof XSDEnumerationFacet) - { - XSDEnumerationFacet enumFacet = (XSDEnumerationFacet) element; - String value = enumFacet.getLexicalValue(); - if (value == null) - value = ""; - return value; - } - return ""; //$NON-NLS-1$ - } - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDActionManager.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDActionManager.java deleted file mode 100644 index b31fa6c429..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDActionManager.java +++ /dev/null @@ -1,148 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.eclipse.gef.commands.Command; -import org.eclipse.gef.commands.CommandStack; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.ui.internal.XMLUIMessages; -import org.eclipse.wst.xml.ui.internal.actions.EditAttributeAction; -import org.eclipse.wst.xml.ui.internal.contentoutline.XMLNodeActionManager; -import org.w3c.dom.Document; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -public class XSDActionManager extends XMLNodeActionManager { - - private CommandStack commandStack; - - public XSDActionManager(IStructuredModel model, Viewer viewer) { - super(model, viewer); - } - - public void setCommandStack(CommandStack commandStack) { - this.commandStack = commandStack; - } - - protected Action createAddCDataSectionAction(Node parent, int index) - { - return null; - } - - protected Action createAddPCDataAction(Node parent, CMDataType dataType, int index) { - return null; - } - - - protected void contributeAddDocumentChildActions(IMenuManager menu, Document document, int ic, int vc) { - } - - protected void contributeEditGrammarInformationActions(IMenuManager menu, Node node) { - } - - protected void contributePIAndCommentActions(IMenuManager menu, Document document, int index) { - } - - protected void contributePIAndCommentActions(IMenuManager menu, Element parentElement, CMElementDeclaration parentEd, int index) { - } - - protected void contributeTextNodeActions(IMenuManager menu, Element parentElement, CMElementDeclaration parentEd, int index) { - super.contributeTextNodeActions(menu, parentElement, parentEd, index); - } - - protected Action createAddAttributeAction(Element parent, CMAttributeDeclaration ad) { - Action action = null; - if (ad == null) { - action = new EditAttributeAction(this, parent, null, XMLUIMessages._UI_MENU_NEW_ATTRIBUTE, XMLUIMessages._UI_MENU_NEW_ATTRIBUTE_TITLE); //$NON-NLS-1$ //$NON-NLS-2$ - } else { - action = new AddNodeAction(ad, parent, -1); - } - - WrapperCommand command = new WrapperCommand(action, parent, ad); - WrapperAction wrapperAction = new WrapperAction(command); - return wrapperAction; - } - - class WrapperAction extends Action - { - WrapperCommand command; - - public WrapperAction(WrapperCommand command) - { - super(); - this.command = command; - } - - public String getText() - { - return command.getAction().getText(); - } - - public void run() - { - // Some editors may not use a command stack - if (commandStack != null) - { - commandStack.execute(command); - } - else - { - command.execute(); - } - } - } - - class WrapperCommand extends Command - { - Action action; - Element parent; - CMAttributeDeclaration ad; - public WrapperCommand(Action action, Element parent, CMAttributeDeclaration ad) - { - super(); - this.action = action; - this.parent = parent; - this.ad = ad; - } - - public String getLabel() - { - return action.getText(); - } - - public Action getAction() - { - return action; - } - - public void execute() - { - action.run(); - } - - public void undo() { - -// ((Element)parent).removeAttribute(ad.getAttrName()); - - getModel().getUndoManager().undo(); - - } - - - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeDeclarationSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeDeclarationSection.java deleted file mode 100644 index a83f758f6c..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeDeclarationSection.java +++ /dev/null @@ -1,244 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.apache.xerces.util.XMLChar; -import org.eclipse.gef.commands.Command; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CLabel; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Text; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand; -import org.eclipse.wst.xsd.ui.internal.editor.Messages; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDTypeDefinition; -import org.eclipse.xsd.util.XSDConstants; - -public class XSDAttributeDeclarationSection extends AbstractSection -{ - protected Text nameText; - protected Text typeCombo; - protected Button button; - boolean isAttributeReference; - - public XSDAttributeDeclarationSection() - { - super(); - } - - protected void createContents(Composite parent) - { - composite = getWidgetFactory().createFlatFormComposite(parent); - - String typeLabel = Messages.UI_LABEL_TYPE; //$NON-NLS-1$ - - GridLayout gridLayout = new GridLayout(); - gridLayout.numColumns = 3; - composite.setLayout(gridLayout); - - // ------------------------------------------------------------------ - // NameLabel - // ------------------------------------------------------------------ - GridData data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - CLabel nameLabel = getWidgetFactory().createCLabel(composite, "Name:"); //$NON-NLS-1$ - nameLabel.setLayoutData(data); - - // ------------------------------------------------------------------ - // NameText - // ------------------------------------------------------------------ - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$ - nameText.setLayoutData(data); - applyAllListeners(nameText); - - // ------------------------------------------------------------------ - // DummyLabel - // ------------------------------------------------------------------ - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$ - - // ------------------------------------------------------------------ - // typeLabel - // ------------------------------------------------------------------ - getWidgetFactory().createCLabel(composite, typeLabel); //$NON-NLS-1$ - - // ------------------------------------------------------------------ - // typeCombo - // ------------------------------------------------------------------ - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - - typeCombo = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$ - typeCombo.setEditable(false); - // baseTypeCombo.addListener(SWT.Modify, this); - typeCombo.setLayoutData(data); - - // ------------------------------------------------------------------ - // BaseTypeButton - // ------------------------------------------------------------------ - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - - button = getWidgetFactory().createButton(composite, "", SWT.PUSH); - button.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); - button.addSelectionListener(this); - button.setLayoutData(data); - } - - /* - * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh() - */ - public void refresh() - { - super.refresh(); - - setListenerEnabled(false); - - // refresh name - - nameText.setText(""); - if (input instanceof XSDAttributeDeclaration) - { - XSDAttributeDeclaration namedComponent = ((XSDAttributeDeclaration) input).getResolvedAttributeDeclaration(); - - String name = namedComponent.getName(); - if (name != null) - { - nameText.setText(name); - } - } - - // refresh type - - typeCombo.setText(""); //$NON-NLS-1$ - if (input != null) - { - if (input instanceof XSDAttributeDeclaration) - { - XSDAttributeDeclaration xsdAttribute = ((XSDAttributeDeclaration) input).getResolvedAttributeDeclaration(); - isAttributeReference = ((XSDAttributeDeclaration)input).isAttributeDeclarationReference(); - XSDTypeDefinition typeDef = xsdAttribute.getTypeDefinition(); - boolean isAnonymous = xsdAttribute.getAnonymousTypeDefinition() != null; - - if (isAnonymous) - { - typeCombo.setText("**anonymous**"); //$NON-NLS-1$ - } - else - { - String typeName = ""; //$NON-NLS-1$ - if (typeDef != null) - { - typeName = typeDef.getQName(xsdSchema); - if (typeName == null) - { - typeName = ""; //$NON-NLS-1$ - } - typeCombo.setText(typeName); - } - else - { - typeCombo.setText(Messages.UI_NO_TYPE); //$NON-NLS-1$ - } - } - } - } - - setListenerEnabled(true); - } - - public boolean shouldUseExtraSpace() - { - return false; - } - - protected void doHandleEvent(Event event) - { - super.doHandleEvent(event); - if (event.widget == nameText) - { - if (!nameText.getEditable()) - return; - - String newValue = nameText.getText().trim(); - if (input instanceof XSDAttributeDeclaration) - { - XSDAttributeDeclaration namedComponent = ((XSDAttributeDeclaration) input).getResolvedAttributeDeclaration(); - - if (!validateSection()) - return; - - Command command = null; - - // Make sure an actual name change has taken place - String oldName = namedComponent.getName(); - if (!newValue.equals(oldName)) - { - command = new UpdateNameCommand("Rename", namedComponent, newValue); - } - - if (command != null && getCommandStack() != null) - { - getCommandStack().execute(command); - } - - if (isAttributeReference) - { - XSDAttributeDeclaration attrRef = (XSDAttributeDeclaration)input; - String qname = attrRef.getResolvedAttributeDeclaration().getQName(); - attrRef.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, qname); - -// TypesHelper helper = new TypesHelper(xsdSchema); -// List items = new ArrayList(); -// items = helper.getGlobalElements(); -// items.add(0, ""); -// componentNameCombo.setItems((String [])items.toArray(new String[0])); -// -// refreshRefCombo(); - } - - } - } - } - - protected boolean validateSection() - { - if (nameText == null || nameText.isDisposed()) - return true; - - setErrorMessage(null); - - String name = nameText.getText().trim(); - - // validate against NCName - if (name.length() < 1 || !XMLChar.isValidNCName(name)) - { - setErrorMessage("Error Invalid Name"); - return false; - } - - return true; - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeGroupDefinitionSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeGroupDefinitionSection.java deleted file mode 100644 index 1d9ba905bf..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeGroupDefinitionSection.java +++ /dev/null @@ -1,95 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.custom.CLabel; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.xsd.XSDNamedComponent; -import org.eclipse.xsd.util.XSDConstants; -import org.w3c.dom.Element; - -public class XSDAttributeGroupDefinitionSection extends AbstractSection -{ - protected CCombo refCombo; - - public XSDAttributeGroupDefinitionSection() - { - super(); - } - - protected void createContents(Composite parent) - { - composite = getWidgetFactory().createFlatFormComposite(parent); - - GridLayout gridLayout = new GridLayout(); - gridLayout.numColumns = 2; - composite.setLayout(gridLayout); - - // ------------------------------------------------------------------ - // Ref Label - // ------------------------------------------------------------------ - GridData data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - CLabel refLabel = getWidgetFactory().createCLabel(composite, XSDConstants.REF_ATTRIBUTE + ":"); //$NON-NLS-1$ - refLabel.setLayoutData(data); - - // ------------------------------------------------------------------ - // Ref Combo - // ------------------------------------------------------------------ - - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - - refCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT); - refCombo.addSelectionListener(this); - refCombo.setLayoutData(data); - } - - public void refresh() - { - super.refresh(); - - if (isReadOnly) - { - composite.setEnabled(false); - } - else - { - composite.setEnabled(true); - } - - setListenerEnabled(false); - - if (input instanceof XSDNamedComponent) - { - XSDNamedComponent namedComponent = (XSDNamedComponent)input; - Element element = namedComponent.getElement(); - if (element != null) - { - String attrValue = element.getAttribute(XSDConstants.REF_ATTRIBUTE); - if (attrValue == null) - { - attrValue = ""; - } - refCombo.setText(attrValue); - } - } - - setListenerEnabled(true); - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDComplexTypeSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDComplexTypeSection.java deleted file mode 100644 index d7229635d5..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDComplexTypeSection.java +++ /dev/null @@ -1,360 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.apache.xerces.util.XMLChar; -import org.eclipse.gef.commands.Command; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.custom.CLabel; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Text; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand; -import org.eclipse.wst.xsd.ui.internal.editor.Messages; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDDerivationMethod; -import org.eclipse.xsd.XSDNamedComponent; -import org.eclipse.xsd.XSDTypeDefinition; -import org.eclipse.xsd.util.XSDConstants; - -public class XSDComplexTypeSection extends AbstractSection implements SelectionListener -{ - protected Text nameText; - protected Text baseTypeCombo; - protected CCombo derivedByCombo; - protected Button button; - private String derivedByChoicesComboValues[] = { "", XSDConstants.RESTRICTION_ELEMENT_TAG, XSDConstants.EXTENSION_ELEMENT_TAG }; - - public XSDComplexTypeSection() - { - super(); - } - - /** - * Contents of the property tab - * - * NameLabel NameText DummyLabel BaseTypeLabel BaseTypeCombo BaseTypeButton - * DerivedByLabel DerivedByCombo - */ - public void createContents(Composite parent) - { - composite = getWidgetFactory().createFlatFormComposite(parent); - - GridLayout gridLayout = new GridLayout(); - gridLayout.numColumns = 3; - composite.setLayout(gridLayout); - - // ------------------------------------------------------------------ - // NameLabel - // ------------------------------------------------------------------ - GridData data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - CLabel nameLabel = getWidgetFactory().createCLabel(composite, "Name:"); //$NON-NLS-1$ - nameLabel.setLayoutData(data); - - // ------------------------------------------------------------------ - // NameText - // ------------------------------------------------------------------ - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$ - nameText.setLayoutData(data); - applyAllListeners(nameText); - - // ------------------------------------------------------------------ - // DummyLabel - // ------------------------------------------------------------------ - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$ - - // ------------------------------------------------------------------ - // BaseTypeLabel - // ------------------------------------------------------------------ - - getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_INHERIT_FROM); //$NON-NLS-1$ - - // ------------------------------------------------------------------ - // BaseTypeCombo - // ------------------------------------------------------------------ - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - - baseTypeCombo = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$ - baseTypeCombo.setEditable(false); - // baseTypeCombo.addListener(SWT.Modify, this); - baseTypeCombo.setLayoutData(data); - - // ------------------------------------------------------------------ - // BaseTypeButton - // ------------------------------------------------------------------ - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - - button = getWidgetFactory().createButton(composite, "", SWT.PUSH); - button.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); - button.addSelectionListener(this); - button.setLayoutData(data); - - // ------------------------------------------------------------------ - // DerivedByLabel - // ------------------------------------------------------------------ - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - - CLabel derivedByLabel = getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_INHERIT_BY); //$NON-NLS-1$ - derivedByLabel.setLayoutData(data); - - // ------------------------------------------------------------------ - // DerivedByCombo - // ------------------------------------------------------------------ - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - - derivedByCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT); - derivedByCombo.setLayoutData(data); - derivedByCombo.setItems(derivedByChoicesComboValues); - // derivedByCombo.addSelectionListener(this); - - } - - /* - * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh() - */ - public void refresh() - { - super.refresh(); - if (Display.getCurrent() == null) - return; - - setListenerEnabled(false); - - try - { - nameText.setText(""); - baseTypeCombo.setText(""); //$NON-NLS-1$ - - if (input instanceof XSDComplexTypeDefinition) - { - XSDComplexTypeDefinition complexType = (XSDComplexTypeDefinition) input; - String name = complexType.getName(); - if (name == null) - name = ""; - - boolean isAnonymousType = name.equals("") ? true : false; - if (isAnonymousType) - { - nameText.setText("**anonymous**"); //$NON-NLS-1$ - nameText.setEditable(false); - } - else - { - nameText.setText(name); - nameText.setEditable(true); - } - - XSDTypeDefinition baseTypeDefinition = complexType.getBaseTypeDefinition(); - String baseType = ""; //$NON-NLS-1$ - if (baseTypeDefinition != null) - { - baseType = baseTypeDefinition.getName(); - if (baseType == null) - { - baseType = ""; - } - } - baseTypeCombo.setText(baseType); - - derivedByCombo.setText(""); //$NON-NLS-1$ - int derivationMethod = complexType.getDerivationMethod().getValue(); - if (derivationMethod == XSDDerivationMethod.EXTENSION) - { - derivedByCombo.setText(XSDConstants.EXTENSION_ELEMENT_TAG); - } - else if (derivationMethod == XSDDerivationMethod.RESTRICTION) - { - derivedByCombo.setText(XSDConstants.RESTRICTION_ELEMENT_TAG); - } - } - - } - finally - { - setListenerEnabled(true); - } - } - - /** - * @see org.eclipse.swt.events.SelectionListener#widgetSelected(SelectionEvent) - */ - public void widgetSelected(SelectionEvent e) - { -// XSDComplexTypeDefinition xsdComplexType = (XSDComplexTypeDefinition) input; -// Element ctElement = xsdComplexType.getElement(); - if (e.widget == button) - { -// Shell shell = Display.getCurrent().getActiveShell(); -// Element element = null; -// if (xsdComplexType.getContent() != null) -// { -// element = xsdComplexType.getContent().getElement(); -// } - - // SimpleContentBaseTypeOptionsDialog dialog = new - // SimpleContentBaseTypeOptionsDialog(shell, element, BASE_TYPE_ID, - // xsdComplexType.getSchema()); - // dialog.setBlockOnOpen(true); - // dialog.create(); - // int result = dialog.open(); - -// IFile currentIFile = ((IFileEditorInput) getActiveEditor().getEditorInput()).getFile(); - -// XSDSchema schema = xsdComplexType.getSchema(); - - // issuec (cs) need to move the common.ui's selection dialog - /* - XSDComponentSelectionProvider provider = new XSDComponentSelectionProvider(currentIFile, schema); - XSDComponentSelectionDialog dialog = new XSDComponentSelectionDialog(shell, Messages.UI_LABEL_SET_TYPE, provider); - provider.setDialog(dialog); - dialog.setBlockOnOpen(true); - dialog.create(); - int result = dialog.open(); - - if (result == Window.OK) - { - XMLComponentSpecification spec = dialog.getSelection(); - XSDSetTypeHelper helper = new XSDSetTypeHelper(currentIFile, schema); - helper.addImportIfNecessary(element, spec); - - String typeString = helper.getPrefixedTypeName(spec); - - String derivedBy = ""; - int derivationMethod = xsdComplexType.getDerivationMethod().getValue(); - if (derivationMethod == XSDDerivationMethod.EXTENSION) - { - derivedBy = XSDConstants.EXTENSION_ELEMENT_TAG; - } - else if (derivationMethod == XSDDerivationMethod.RESTRICTION) - { - derivedBy = XSDConstants.RESTRICTION_ELEMENT_TAG; - } - - SetBaseTypeAction setBaseTypeAction = new SetBaseTypeAction("_UI_LABEL_SET_BASE_TYPE"); //$NON-NLS-1$ - setBaseTypeAction.setXSDSchema(xsdSchema); - setBaseTypeAction.setComplexTypeElement(ctElement); - setBaseTypeAction.setType(typeString); - setBaseTypeAction.setDerivedBy(derivedBy); - setBaseTypeAction.performAction(); - - } - refresh(); - // } - // else if (e.widget == derivedByCombo) - // { - // Element contentModelElement = - // getDomHelper().getContentModelFromParent(ctElement); - // String baseType = getDomHelper().getBaseType(contentModelElement); - // beginRecording(XSDEditorPlugin.getXSDString("_UI_DERIVEDBY_CHANGE"), - // ctElement); //$NON-NLS-1$ - // if (contentModelElement != null) - // { - // getDomHelper().changeDerivedByType(contentModelElement, - // derivedByCombo.getText(), baseType); - // } - // endRecording(ctElement); - */ - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#shouldUseExtraSpace() - */ - public boolean shouldUseExtraSpace() - { - return false; - } - - public void dispose() - { - super.dispose(); - } - - public void doHandleEvent(Event event) - { - super.doHandleEvent(event); - if (event.widget == nameText) - { - if (!nameText.getEditable()) - return; - - String newValue = nameText.getText().trim(); - if (input instanceof XSDNamedComponent) - { - XSDNamedComponent namedComponent = (XSDNamedComponent) input; - - if (!validateSection()) - return; - - Command command = null; - - // Make sure an actual name change has taken place - String oldName = namedComponent.getName(); - if (!newValue.equals(oldName)) - { - command = new UpdateNameCommand("Rename", namedComponent, newValue); - } - - if (command != null && getCommandStack() != null) - { - getCommandStack().execute(command); - } - // doReferentialIntegrityCheck(namedComponent, newValue); - } - } - } - - protected boolean validateSection() - { - if (nameText == null || nameText.isDisposed()) - return true; - - setErrorMessage(null); - - String name = nameText.getText().trim(); - - // validate against NCName - if (name.length() < 1 || !XMLChar.isValidNCName(name)) - { - setErrorMessage("Error Invalid Name"); - return false; - } - - return true; - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDElementDeclarationSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDElementDeclarationSection.java deleted file mode 100644 index 98b263a96e..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDElementDeclarationSection.java +++ /dev/null @@ -1,551 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.xerces.util.XMLChar; -import org.eclipse.core.resources.IFile; -import org.eclipse.gef.commands.Command; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.window.Window; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.custom.CLabel; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Display; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.IFileEditorInput; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; -import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSearchListDialog; -import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSearchListDialogConfiguration; -import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification; -import org.eclipse.wst.common.ui.internal.search.dialogs.ScopedComponentSearchListDialog; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateMaxOccursCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateMinOccursCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateTypeReferenceCommand; -import org.eclipse.wst.xsd.ui.internal.dialogs.NewTypeButtonHandler; -import org.eclipse.wst.xsd.ui.internal.editor.Messages; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.wst.xsd.ui.internal.editor.search.XSDComponentDescriptionProvider; -import org.eclipse.wst.xsd.ui.internal.editor.search.XSDTypesSearchListProvider; -import org.eclipse.wst.xsd.ui.internal.util.TypesHelper; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDParticle; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDTypeDefinition; -import org.eclipse.xsd.util.XSDConstants; -import org.w3c.dom.Element; - -public class XSDElementDeclarationSection extends MultiplicitySection -{ - protected Text nameText; - protected Text typeCombo; - protected Button typesBrowseButton; - protected CCombo componentNameCombo; - boolean isElementReference; - - private XSDTypeDefinition typeDefinition; - - public XSDElementDeclarationSection() - { - super(); - } - - /** - * Contents of the property tab - */ - public void createContents(Composite parent) - { - composite = getWidgetFactory().createFlatFormComposite(parent); - TabbedPropertySheetWidgetFactory factory = getWidgetFactory(); - - String typeLabel = Messages.UI_LABEL_TYPE; //$NON-NLS-1$ - - GridData data = new GridData(); - - GridLayout gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 3; - composite.setLayout(gridLayout); - - // ------------------------------------------------------------------ - // NameLabel - // ------------------------------------------------------------------ - - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - CLabel nameLabel = factory.createCLabel(composite, "Name:"); - nameLabel.setLayoutData(data); - - // ------------------------------------------------------------------ - // NameText - // ------------------------------------------------------------------ - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$ - nameText.setLayoutData(data); - applyAllListeners(nameText); - - // ------------------------------------------------------------------ - // DummyLabel - // ------------------------------------------------------------------ - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$ - - // ------------------------------------------------------------------ - // Ref Label - // ------------------------------------------------------------------ - if (isElementReference) - { - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - CLabel refLabel = getWidgetFactory().createCLabel(composite, "Reference:"); - refLabel.setLayoutData(data); - - // ------------------------------------------------------------------ - // Ref Combo - // ------------------------------------------------------------------ - - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - - componentNameCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT); - componentNameCombo.addSelectionListener(this); - componentNameCombo.setLayoutData(data); - - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - - getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$ - } - - // ------------------------------------------------------------------ - // typeLabel - // ------------------------------------------------------------------ - getWidgetFactory().createCLabel(composite, typeLabel); - - // ------------------------------------------------------------------ - // typeCombo - // ------------------------------------------------------------------ - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - - typeCombo = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$ - typeCombo.setEditable(false); - typeCombo.setLayoutData(data); - - // ------------------------------------------------------------------ - // BaseTypeButton - // ------------------------------------------------------------------ - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - - typesBrowseButton = getWidgetFactory().createButton(composite, "", SWT.PUSH); - typesBrowseButton.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); - typesBrowseButton.addSelectionListener(this); - typesBrowseButton.setLayoutData(data); - - // ------------------------------------------------------------------ - // min/max button modifiers - // ------------------------------------------------------------------ - - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - - getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$ - - Composite modifierComposite = getWidgetFactory().createComposite(composite, SWT.FLAT); - GridLayout gridLayout2 = new GridLayout(); - gridLayout2.marginLeft = 0; - gridLayout2.marginRight = 0; - gridLayout2.marginTop = 0; - gridLayout2.marginBottom = 0; - gridLayout2.numColumns = 2; - modifierComposite.setLayout(gridLayout2); - modifierComposite.setLayoutData(data); - requiredButton = getWidgetFactory().createButton(modifierComposite, "Required", SWT.CHECK | SWT.FLAT); //$NON-NLS-1$ - requiredButton.addSelectionListener(this); - - listButton = getWidgetFactory().createButton(modifierComposite, "Array", SWT.CHECK | SWT.FLAT); //$NON-NLS-1$ - listButton.addSelectionListener(this); - - getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$ - - // ------------------------------------------------------------------ - // min property - // ------------------------------------------------------------------ - - getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_MINOCCURS); - - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - - minCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT); - minCombo.setLayoutData(data); - minCombo.add("0"); //$NON-NLS-1$ - minCombo.add("1"); //$NON-NLS-1$ - applyModifyListeners(minCombo); - minCombo.addSelectionListener(this); - - // ------------------------------------------------------------------ - // DummyLabel - // ------------------------------------------------------------------ - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$ - - // ------------------------------------------------------------------ - // max property - // ------------------------------------------------------------------ - getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_MAXOCCURS); - - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - - maxCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT); - maxCombo.setLayoutData(data); - maxCombo.add("0"); //$NON-NLS-1$ - maxCombo.add("1"); //$NON-NLS-1$ - maxCombo.add("unbounded"); //$NON-NLS-1$ - applyModifyListeners(maxCombo); - maxCombo.addSelectionListener(this); - } - - public void setInput(IWorkbenchPart part, ISelection selection) - { - super.setInput(part, selection); - setListenerEnabled(false); - init(); - relayout(); - - if (isElementReference) - { - TypesHelper helper = new TypesHelper(xsdSchema); - List items = new ArrayList(); - items = helper.getGlobalElements(); - items.add(0, ""); - componentNameCombo.setItems((String [])items.toArray(new String[0])); - } - setListenerEnabled(true); - } - - protected void init() - { - if (input instanceof XSDElementDeclaration) - { - XSDElementDeclaration xsdElementDeclaration = (XSDElementDeclaration) input; - isElementReference = xsdElementDeclaration.isElementDeclarationReference(); - - typeDefinition = xsdElementDeclaration.getResolvedElementDeclaration().getTypeDefinition(); - } - } - - /* - * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh() - */ - public void refresh() - { - super.refresh(); - - setListenerEnabled(false); - - XSDElementDeclaration xsdElementDeclaration = ((XSDElementDeclaration) input).getResolvedElementDeclaration(); - - // refresh name - nameText.setText(""); - typeCombo.setText(""); //$NON-NLS-1$ - typesBrowseButton.setEnabled(true); - String name = xsdElementDeclaration.getName(); - if (name != null) - { - nameText.setText(name); - } - - if (isElementReference) - { - refreshRefCombo(); - } - - // refresh type - if (input != null) - { - if (input instanceof XSDElementDeclaration) - { - boolean isAnonymous = xsdElementDeclaration.getAnonymousTypeDefinition() != null; - //XSDTypeDefinition typeDef = XSDUtils.getResolvedType(xsdElementDeclaration); - XSDTypeDefinition typeDef = xsdElementDeclaration.getResolvedElementDeclaration().getTypeDefinition(); - - String typeName = ""; //$NON-NLS-1$ - if (typeDef != null) - typeName = typeDef.getQName(xsdSchema); - - if (typeName == null) - { - typeName = ""; //$NON-NLS-1$ - } - - if (isAnonymous) - { - typeCombo.setText("**anonymous**"); //$NON-NLS-1$ - } - else - { - if (typeDefinition != null) - { - typeCombo.setText(typeName); - } - else - { - typeCombo.setText(Messages.UI_NO_TYPE); //$NON-NLS-1$ - } - } - } - } - - // refresh min max - refreshMinMax(); - - setListenerEnabled(true); - - } - - public boolean shouldUseExtraSpace() - { - return false; - } - - public void doWidgetSelected(SelectionEvent e) - { - if (e.widget == typesBrowseButton) - { - Shell shell = Display.getCurrent().getActiveShell(); - IFile currentIFile = ((IFileEditorInput) getActiveEditor().getEditorInput()).getFile(); - - /** Initialize the Set types Dialog */ - final XSDTypesSearchListProvider searchListProvider = - new XSDTypesSearchListProvider(currentIFile, new XSDSchema[] {xsdSchema} ); - ComponentSearchListDialogConfiguration configuration = new ComponentSearchListDialogConfiguration(); - configuration.setDescriptionProvider(new XSDComponentDescriptionProvider() ); - configuration.setSearchListProvider(searchListProvider); - configuration.setNewComponentHandler(new NewTypeButtonHandler()); - ComponentSearchListDialog dialog = new ScopedComponentSearchListDialog(shell, XSDEditorPlugin.getXSDString("_UI_LABEL_SET_TYPE"), configuration); - //dialog.setFilterLabel("Text:"); - - if (input instanceof XSDAttributeDeclaration) - { - searchListProvider.showComplexTypes(false); - } - - dialog.setBlockOnOpen(true); - dialog.create(); - - if (dialog.open() == Window.OK) - { - //String newType = (String) dialog.getSelection().getAttributeInfo("name"); - //String nsType = (String) dialog.getSelection().getTargetNamespace(); - - ComponentSpecification selection = dialog.getSelectedComponent(); - String newType = selection.getName(); - String namespace = selection.getQualifier(); - - UpdateTypeReferenceCommand command = new UpdateTypeReferenceCommand((XSDElementDeclaration) input, xsdSchema.resolveTypeDefinition(namespace, newType)); - getCommandStack().execute(command); - - init(); - relayout(); - } - } - else if (e.widget == listButton) - { - int maxOccurs = (listButton.getSelection() ? XSDParticle.UNBOUNDED : 1); - if (input instanceof XSDElementDeclaration) - { - XSDParticle particle = (XSDParticle) ((XSDElementDeclaration) input).eContainer(); - UpdateMaxOccursCommand command = new UpdateMaxOccursCommand("Update Maximum Occurence", particle, maxOccurs); - getCommandStack().execute(command); - if (maxOccurs == -1) - maxCombo.setText("*"); - else - maxCombo.setText(""); - } - } - else if (e.widget == requiredButton) - { - int minOccurs = requiredButton.getSelection() ? 1 : 0; - if (input instanceof XSDElementDeclaration) - { - XSDParticle particle = (XSDParticle) ((XSDElementDeclaration) input).eContainer(); - UpdateMinOccursCommand command = new UpdateMinOccursCommand("Update Minimum Occurrence", particle, minOccurs); - getCommandStack().execute(command); - } - minCombo.setText("" + minOccurs); - } - else if (e.widget == componentNameCombo) - { - String newValue = componentNameCombo.getText(); - String newName = newValue.substring(newValue.indexOf(":") + 1); - if (isElementReference) - { - XSDElementDeclaration elementRef = (XSDElementDeclaration)input; - elementRef.getElement().setAttribute(XSDConstants.REF_ATTRIBUTE, newValue); - nameText.setText(newName); - //refresh(); - } - - } - else if (e.widget == maxCombo) - { - updateMaxAttribute(); - } - else if (e.widget == minCombo) - { - updateMinAttribute(); - } - - } - - protected void relayout() - { - Composite parentComposite = composite.getParent(); - parentComposite.getParent().setRedraw(false); - - if (parentComposite != null && !parentComposite.isDisposed()) - { - Control[] children = parentComposite.getChildren(); - for (int i = 0; i < children.length; i++) - { - children[i].dispose(); - } - } - - // Now initialize the new handler - createContents(parentComposite); - parentComposite.getParent().layout(true, true); - - // Now turn painting back on - parentComposite.getParent().setRedraw(true); - refresh(); - } - - public void doHandleEvent(Event event) - { - super.doHandleEvent(event); - if (event.widget == nameText) - { - String newValue = nameText.getText().trim(); - if (input instanceof XSDElementDeclaration) - { - XSDElementDeclaration namedComponent = ((XSDElementDeclaration) input).getResolvedElementDeclaration(); - if (!validateSection()) - return; - - Command command = null; - - // Make sure an actual name change has taken place - String oldName = namedComponent.getName(); - if (!newValue.equals(oldName)) - { - command = new UpdateNameCommand("Rename", namedComponent, newValue); - } - - if (command != null && getCommandStack() != null) - { - getCommandStack().execute(command); - } - - // doReferentialIntegrityCheck(namedComponent, newValue); - } - } - else if (event.widget == minCombo) - { - requiredButton.setSelection(isRequired); - } - - } - - protected boolean validateSection() - { - if (nameText == null || nameText.isDisposed()) - return true; - - setErrorMessage(null); - - String name = nameText.getText().trim(); - - // validate against NCName - if (name.length() < 1 || !XMLChar.isValidNCName(name)) - { - setErrorMessage("Invalid name"); - return false; - } - - return true; - } - - public void dispose() - { - if (typesBrowseButton != null && !typesBrowseButton.isDisposed()) - typesBrowseButton.removeSelectionListener(this); - if (componentNameCombo != null && !componentNameCombo.isDisposed()) - componentNameCombo.removeSelectionListener(this); - if (minCombo != null && !minCombo.isDisposed()) - minCombo.removeSelectionListener(this); - if (maxCombo != null && !maxCombo.isDisposed()) - maxCombo.removeSelectionListener(this); - if (requiredButton != null && !requiredButton.isDisposed()) - requiredButton.removeSelectionListener(this); - if (listButton != null && !listButton.isDisposed()) - listButton.removeSelectionListener(this); - super.dispose(); - } - - protected void refreshRefCombo() - { - componentNameCombo.setText(""); - typesBrowseButton.setEnabled(false); - - XSDElementDeclaration namedComponent = (XSDElementDeclaration) input; - Element element = namedComponent.getElement(); - if (element != null) - { - String attrValue = element.getAttribute(XSDConstants.REF_ATTRIBUTE); - if (attrValue == null) - { - attrValue = ""; - } - componentNameCombo.setText(attrValue); - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDFacetSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDFacetSection.java deleted file mode 100644 index 823f1c53c0..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDFacetSection.java +++ /dev/null @@ -1,912 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import java.math.BigDecimal; -import java.math.BigInteger; - -import org.eclipse.gef.commands.Command; -import org.eclipse.gef.commands.CompoundCommand; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CLabel; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Font; -import org.eclipse.swt.graphics.FontData; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; -import org.eclipse.wst.xsd.ui.internal.common.commands.ChangeToLocalSimpleTypeCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNumericBoundsFacetCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateStringLengthFacetCommand; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateXSDWhiteSpaceFacetCommand; -import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDFeature; -import org.eclipse.xsd.XSDLengthFacet; -import org.eclipse.xsd.XSDMaxExclusiveFacet; -import org.eclipse.xsd.XSDMaxFacet; -import org.eclipse.xsd.XSDMaxInclusiveFacet; -import org.eclipse.xsd.XSDMaxLengthFacet; -import org.eclipse.xsd.XSDMinExclusiveFacet; -import org.eclipse.xsd.XSDMinFacet; -import org.eclipse.xsd.XSDMinInclusiveFacet; -import org.eclipse.xsd.XSDMinLengthFacet; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.XSDTypeDefinition; -import org.eclipse.xsd.XSDWhiteSpace; -import org.eclipse.xsd.XSDWhiteSpaceFacet; -import org.eclipse.xsd.util.XSDConstants; - -public class XSDFacetSection extends AbstractSection -{ - private String minLengthString, maxLengthString, titleString; - Font titleFont; - CLabel title; - Label minLengthLabel; - Text minLengthText; - Label maxLengthLabel; - Text maxLengthText; - Group simpleTypeModifierGroup; - String simpleTypeModifierGroupTitle = ""; - Button collapseWhitespaceButton; - Button useEnumerationsButton, usePatternsButton; - Button minimumInclusiveCheckbox; - Button maximumInclusiveCheckbox; - boolean isNumericBaseType; - private XSDTypeDefinition typeDefinition; - private XSDSimpleTypeDefinition xsdSimpleTypeDefinition; - private XSDElementDeclaration xsdElementDeclaration; - private XSDAttributeDeclaration xsdAttributeDeclaration; - private XSDFeature xsdFeature; - boolean hasMaxMinFacets; - - SpecificConstraintsWidget constraintsWidget; - - public XSDFacetSection() - { - super(); - } - - protected void createContents(Composite parent) - { - TabbedPropertySheetWidgetFactory factory = getWidgetFactory(); - composite = factory.createFlatFormComposite(parent); - - GridLayout gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 1; - composite.setLayout(gridLayout); - - title = factory.createCLabel(composite, ""); //$NON-NLS-1$ - FontData fontData = composite.getFont().getFontData()[0]; - int height = fontData.getHeight(); - fontData.setHeight(height + 2); - fontData.setStyle(SWT.BOLD); - titleFont = new Font(null, fontData); - title.setFont(titleFont); - title.setText(titleString + (isReadOnly ? " - ReadOnly" : "")); - - Composite facetComposite = factory.createComposite(composite, SWT.FLAT); - - GridData data = new GridData(); - gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 2; - facetComposite.setLayout(gridLayout); - data.grabExcessVerticalSpace = true; - data.grabExcessHorizontalSpace = true; - data.verticalAlignment = GridData.FILL; - data.horizontalAlignment = GridData.FILL; - facetComposite.setLayoutData(data); - - data = new GridData(); - data.grabExcessVerticalSpace = true; - data.horizontalAlignment = GridData.FILL; - data.verticalAlignment = GridData.FILL; - - simpleTypeModifierGroup = getWidgetFactory().createGroup(facetComposite, simpleTypeModifierGroupTitle); - GridLayout groupGrid = new GridLayout(); - groupGrid.marginTop = 0; - groupGrid.marginBottom = 0; - groupGrid.numColumns = 1; - simpleTypeModifierGroup.setLayoutData(data); - simpleTypeModifierGroup.setLayout(groupGrid); - - Composite simpleTypeModifierComposite = getWidgetFactory().createFlatFormComposite(simpleTypeModifierGroup); - data = new GridData(); - data.grabExcessVerticalSpace = true; - data.verticalAlignment = GridData.FILL; - data.horizontalAlignment = GridData.FILL; - - GridLayout grid = new GridLayout(); - grid.marginTop = 0; - grid.marginBottom = 0; - grid.numColumns = 3; - simpleTypeModifierComposite.setLayout(grid); - simpleTypeModifierComposite.setLayoutData(data); - if (hasMaxMinFacets) - { - minLengthLabel = factory.createLabel(simpleTypeModifierComposite, minLengthString); - minLengthText = factory.createText(simpleTypeModifierComposite, ""); - applyAllListeners(minLengthText); - - GridData minGridData = new GridData(); - minGridData.widthHint = 100; - minLengthText.setLayoutData(minGridData); - minimumInclusiveCheckbox = factory.createButton(simpleTypeModifierComposite, "Inclusive", SWT.CHECK); - minimumInclusiveCheckbox.addSelectionListener(this); - - maxLengthLabel = factory.createLabel(simpleTypeModifierComposite, maxLengthString); - maxLengthText = factory.createText(simpleTypeModifierComposite, ""); - applyAllListeners(maxLengthText); - - GridData maxGridData = new GridData(); - maxGridData.widthHint = 100; - maxLengthText.setLayoutData(maxGridData); - - maximumInclusiveCheckbox = factory.createButton(simpleTypeModifierComposite, "Inclusive", SWT.CHECK); - maximumInclusiveCheckbox.addSelectionListener(this); - - minimumInclusiveCheckbox.setVisible(isNumericBaseType); - maximumInclusiveCheckbox.setVisible(isNumericBaseType); - } - collapseWhitespaceButton = factory.createButton(simpleTypeModifierComposite, "Collapse whitespace", SWT.CHECK); - collapseWhitespaceButton.addSelectionListener(this); - - Group specificValueConstraintsGroup = factory.createGroup(facetComposite, "Specific constraint values"); - gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 2; - specificValueConstraintsGroup.setLayout(gridLayout); - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.grabExcessVerticalSpace = true; - data.horizontalAlignment = GridData.FILL; - data.verticalAlignment = GridData.FILL; - specificValueConstraintsGroup.setLayoutData(data); - - Composite compositeForButtons = factory.createFlatFormComposite(specificValueConstraintsGroup); - gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.verticalSpacing = 1; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 1; - compositeForButtons.setLayout(gridLayout); - data = new GridData(); - data.verticalAlignment = GridData.BEGINNING; - compositeForButtons.setLayoutData(data); - - factory.createCLabel(compositeForButtons, "Restrict values by:"); -// useDefinedValuesButton = factory.createButton(compositeForButtons, "Only permit certain values", SWT.CHECK); -// useDefinedValuesButton.addSelectionListener(this); - - Composite compositeForRadioButtons = factory.createFlatFormComposite(compositeForButtons); - gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginLeft = 0; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 1; - compositeForRadioButtons.setLayout(gridLayout); - useEnumerationsButton = factory.createButton(compositeForRadioButtons, "Enumerations", SWT.RADIO); - useEnumerationsButton.addSelectionListener(this); - usePatternsButton = factory.createButton(compositeForRadioButtons, "Patterns", SWT.RADIO); - usePatternsButton.addSelectionListener(this); - - constraintsWidget = new SpecificConstraintsWidget(specificValueConstraintsGroup, factory, (input instanceof XSDFeature) ? (XSDFeature)input : null, xsdSimpleTypeDefinition, this); - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.grabExcessVerticalSpace = true; - data.horizontalAlignment = GridData.FILL; - data.verticalAlignment = GridData.FILL; - constraintsWidget.getControl().setLayoutData(data); - } - - public void doSetInput() - { - setInput(getPart(), getSelection()); - } - - public void setInput(IWorkbenchPart part, ISelection selection) - { - super.setInput(part, selection); - init(); - - XSDSchema schemaOfType = null; - - if (!isReadOnly) - { - schemaOfType = xsdSimpleTypeDefinition.getSchema(); - } - if (schemaOfType == owningEditor.getAdapter(XSDSchema.class)) - { - isReadOnly = false; - } - else - { - if (!XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(xsdSimpleTypeDefinition.getTargetNamespace())) - isReadOnly = true; - } - if (hasMaxMinFacets) - { - title.setText(titleString + (isReadOnly ? " - ReadOnly" : "")); - } - relayout(); - constraintsWidget.setCommandStack(getCommandStack()); - } - - protected void init() - { - hasMaxMinFacets = false; - try - { - updateInput(); - - if (xsdSimpleTypeDefinition != null) - { - XSDSimpleTypeDefinition targetST = xsdSimpleTypeDefinition; - XSDSimpleTypeDefinition basePrimitive = xsdSimpleTypeDefinition.getPrimitiveTypeDefinition(); - if (basePrimitive != null) - targetST = basePrimitive; - else - targetST = xsdSimpleTypeDefinition.getBaseTypeDefinition(); - - minLengthString = ""; - maxLengthString = ""; - if (targetST.getValidFacets().contains("length")) - { - minLengthString = "Minimum length:"; - maxLengthString = "Maximum length:"; - simpleTypeModifierGroupTitle = "Constraints on length of " + targetST.getName(); - isNumericBaseType = false; - hasMaxMinFacets = true; - } - else if (targetST.getValidFacets().contains("maxInclusive")) - { - simpleTypeModifierGroupTitle = "Constraints on value of " + targetST.getName(); - minLengthString = "Minimum value:"; - maxLengthString = "Maximum value:"; - isNumericBaseType = true; - hasMaxMinFacets = true; - } - else - { - simpleTypeModifierGroupTitle = "Constraints on " + (basePrimitive != null ? basePrimitive.getName() : "anyType"); - } - } - } - catch(Exception e) - { - } - } - - private void updateInput() - { - if (input instanceof XSDFeature) - { - xsdFeature = (XSDFeature) input; - typeDefinition = xsdFeature.getResolvedFeature().getType(); - XSDTypeDefinition anonymousTypeDefinition = null; - if (xsdFeature instanceof XSDElementDeclaration) - { - xsdElementDeclaration = (XSDElementDeclaration)xsdFeature; - anonymousTypeDefinition = xsdElementDeclaration.getResolvedElementDeclaration().getAnonymousTypeDefinition(); - } - else if (xsdFeature instanceof XSDAttributeDeclaration) - { - xsdAttributeDeclaration = (XSDAttributeDeclaration)xsdFeature; - anonymousTypeDefinition = xsdAttributeDeclaration.getResolvedAttributeDeclaration().getAnonymousTypeDefinition(); - } - - if (typeDefinition instanceof XSDSimpleTypeDefinition) - { - xsdSimpleTypeDefinition = (XSDSimpleTypeDefinition) typeDefinition; - } - - if (anonymousTypeDefinition instanceof XSDSimpleTypeDefinition) - { - xsdSimpleTypeDefinition = (XSDSimpleTypeDefinition)anonymousTypeDefinition; - } - - if (xsdSimpleTypeDefinition != null) - titleString = "Type: " + (anonymousTypeDefinition != null ? "(" + xsdElementDeclaration.getResolvedElementDeclaration().getName() + "Type)" : xsdSimpleTypeDefinition.getName()) + " , Base: " + xsdSimpleTypeDefinition.getPrimitiveTypeDefinition().getName(); - } - else if (input instanceof XSDSimpleTypeDefinition) - { - xsdSimpleTypeDefinition = (XSDSimpleTypeDefinition) input; - titleString = "Type: " + xsdSimpleTypeDefinition.getName() + " , Base: " + xsdSimpleTypeDefinition.getPrimitiveTypeDefinition().getName(); - } - } - - public void refresh() - { - super.refresh(); - init(); - setListenerEnabled(false); - - collapseWhitespaceButton.setSelection(false); - XSDWhiteSpaceFacet whitespaceFacet = xsdSimpleTypeDefinition.getWhiteSpaceFacet(); - if (whitespaceFacet != null) - { - if (xsdSimpleTypeDefinition.getFacetContents().contains(whitespaceFacet)) - { - if (XSDWhiteSpace.COLLAPSE_LITERAL.equals(whitespaceFacet.getValue())) - { - if (!XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(xsdSimpleTypeDefinition.getTargetNamespace())) - { - collapseWhitespaceButton.setSelection(true); - } - } - } - } - - if (hasMaxMinFacets) - { - minLengthLabel.setText(minLengthString); - maxLengthLabel.setText(maxLengthString); - - if (!isNumericBaseType) - refreshStringLength(); - else - refreshValueLengths(); - } - - if (xsdSimpleTypeDefinition.getEnumerationFacets().size() > 0) - { - usePatternsButton.setSelection(false); - useEnumerationsButton.setSelection(true); - constraintsWidget.setConstraintKind(SpecificConstraintsWidget.ENUMERATION); - constraintsWidget.addButton.setEnabled(true); - } - else if (xsdSimpleTypeDefinition.getPatternFacets().size() > 0) - { - usePatternsButton.setSelection(true); - useEnumerationsButton.setSelection(false); - constraintsWidget.setConstraintKind(SpecificConstraintsWidget.PATTERN); - constraintsWidget.addButton.setEnabled(false); - } - else - { - usePatternsButton.setSelection(false); - useEnumerationsButton.setSelection(true); - constraintsWidget.setConstraintKind(SpecificConstraintsWidget.ENUMERATION); - constraintsWidget.addButton.setEnabled(true); - } - constraintsWidget.setInput(xsdSimpleTypeDefinition); - - setListenerEnabled(true); - } - - protected void relayout() - { - Composite parent = composite.getParent(); - parent.getParent().setRedraw(false); - - if (parent != null && !parent.isDisposed()) - { - Control[] children = parent.getChildren(); - for (int i = 0; i < children.length; i++) - { - children[i].dispose(); - } - } - createContents(parent); - parent.getParent().layout(true, true); - parent.getParent().setRedraw(true); - refresh(); - } - - public void dispose() - { - if (titleFont != null && !titleFont.isDisposed()) - titleFont.dispose(); - titleFont = null; - - if (minimumInclusiveCheckbox != null && !minimumInclusiveCheckbox.isDisposed()) - minimumInclusiveCheckbox.removeSelectionListener(this); - if (maximumInclusiveCheckbox != null && !maximumInclusiveCheckbox.isDisposed()) - maximumInclusiveCheckbox.removeSelectionListener(this); - - if (collapseWhitespaceButton != null && !collapseWhitespaceButton.isDisposed()) - collapseWhitespaceButton.removeSelectionListener(this); - - if (maxLengthText != null && !maxLengthText.isDisposed()) - removeListeners(maxLengthText); - if (minLengthText != null && !minLengthText.isDisposed()) - removeListeners(minLengthText); - - super.dispose(); - } - - public void refreshStringLength() - { - XSDMinLengthFacet minLengthFacet = xsdSimpleTypeDefinition.getMinLengthFacet(); - XSDMaxLengthFacet maxLengthFacet = xsdSimpleTypeDefinition.getMaxLengthFacet(); - XSDLengthFacet lengthFacet = xsdSimpleTypeDefinition.getLengthFacet(); - - try - { - if (minLengthFacet != null) - { - int minLengthValue = minLengthFacet.getValue(); - if (minLengthValue >= 0) - { - minLengthText.setText(Integer.toString(minLengthValue)); - } - else - { - minLengthText.setText(""); //$NON-NLS-1$ - } - } - if (maxLengthFacet != null) - { - int maxLength = maxLengthFacet.getValue(); - if (maxLength >= 0) - { - maxLengthText.setText(Integer.toString(maxLength)); - } - else - { - maxLengthText.setText(""); //$NON-NLS-1$ - } - } - if (lengthFacet != null) - { - int length = lengthFacet.getValue(); - if (length >= 0) - { - minLengthText.setText(Integer.toString(length)); - maxLengthText.setText(Integer.toString(length)); - } - } - } - catch (Exception e) - { - - } - - } - - public void refreshValueLengths() - { - XSDSimpleTypeDefinition type = xsdSimpleTypeDefinition; - XSDMinFacet minFacet = type.getMinFacet(); - XSDMaxFacet maxFacet = type.getMaxFacet(); - - minimumInclusiveCheckbox.removeSelectionListener(this); - maximumInclusiveCheckbox.removeSelectionListener(this); - try - { - minLengthText.setText(""); //$NON-NLS-1$ - maxLengthText.setText(""); //$NON-NLS-1$ - - minimumInclusiveCheckbox.setSelection(false); - minimumInclusiveCheckbox.setEnabled(false); - if (minFacet != null) - { - if (minFacet.getElement().getNodeName().equals(XSDConstants.MINEXCLUSIVE_ELEMENT_TAG) || - minFacet.getElement().getNodeName().equals(XSDConstants.MININCLUSIVE_ELEMENT_TAG)) - { - minLengthText.setText(minFacet.getLexicalValue()); - minimumInclusiveCheckbox.setSelection(minFacet.isInclusive()); - minimumInclusiveCheckbox.setEnabled(true); - } - } - - maximumInclusiveCheckbox.setSelection(false); - maximumInclusiveCheckbox.setEnabled(false); - if (maxFacet != null) - { - if (maxFacet.getElement().getNodeName().equals(XSDConstants.MAXEXCLUSIVE_ELEMENT_TAG) || - maxFacet.getElement().getNodeName().equals(XSDConstants.MAXINCLUSIVE_ELEMENT_TAG)) - { - maxLengthText.setText(maxFacet.getLexicalValue()); - maximumInclusiveCheckbox.setSelection(maxFacet.isInclusive()); - maximumInclusiveCheckbox.setEnabled(true); - } - } - } - finally - { - minimumInclusiveCheckbox.addSelectionListener(this); - maximumInclusiveCheckbox.addSelectionListener(this); - } - } - - protected void doHandleEvent(Event event) - { - super.doHandleEvent(event); - Command command = null; - boolean doUpdateMax = false, doUpdateMin = false; - - String minValue = minLengthText.getText().trim(); - String maxValue = maxLengthText.getText().trim(); - - XSDLengthFacet lengthFacet = xsdSimpleTypeDefinition.getLengthFacet(); - XSDMinLengthFacet minLengthFacet = xsdSimpleTypeDefinition.getMinLengthFacet(); - XSDMaxLengthFacet maxLengthFacet = xsdSimpleTypeDefinition.getMaxLengthFacet(); - - XSDMinInclusiveFacet minInclusiveFacet = xsdSimpleTypeDefinition.getMinInclusiveFacet(); - XSDMinExclusiveFacet minExclusiveFacet = xsdSimpleTypeDefinition.getMinExclusiveFacet(); - XSDMaxInclusiveFacet maxInclusiveFacet = xsdSimpleTypeDefinition.getMaxInclusiveFacet(); - XSDMaxExclusiveFacet maxExclusiveFacet = xsdSimpleTypeDefinition.getMaxExclusiveFacet(); - - String currentMinInclusive = null, currentMinExclusive = null, currentMaxInclusive = null, currentMaxExclusive = null; - if (minInclusiveFacet != null) - { - currentMinInclusive = minInclusiveFacet.getLexicalValue(); - } - if (minExclusiveFacet != null) - { - currentMinExclusive = minExclusiveFacet.getLexicalValue(); - } - if (maxInclusiveFacet != null) - { - currentMaxInclusive = maxInclusiveFacet.getLexicalValue(); - } - if (maxExclusiveFacet != null) - { - currentMaxExclusive = maxExclusiveFacet.getLexicalValue(); - } - - - String currentLength = null, currentMin = null, currentMax = null; - if (lengthFacet != null) - { - currentLength = lengthFacet.getLexicalValue(); - } - if (minLengthFacet != null) - { - currentMin = minLengthFacet.getLexicalValue(); - } - if (maxLengthFacet != null) - { - currentMax = maxLengthFacet.getLexicalValue(); - } - - if (event.widget == minLengthText) - { - try - { - if (minValue.length() > 0) - { - if (!isNumericBaseType) - { - Number big = new BigInteger(minValue); - big.toString(); - if (minLengthFacet != null) - { - if (minValue.equals(currentMin) || minValue.equals(currentLength)) - return; - } - else - { - if (maxValue != null && minValue.equals(maxValue) && lengthFacet != null) - { - return; - } - } - } - else - { - if (xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("double").equals(xsdSimpleTypeDefinition) || - xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("float").equals(xsdSimpleTypeDefinition) || - xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("decimal").equals(xsdSimpleTypeDefinition)) - { - BigDecimal bigDecimal = new BigDecimal(minValue); - bigDecimal.toString(); - if ( (currentMinInclusive != null && minValue.equals(currentMinInclusive)) || - (currentMinExclusive != null && minValue.equals(currentMinExclusive)) ) - { - return; - } - } - else - { - Number big = new BigInteger(minValue); - big.toString(); - } - minimumInclusiveCheckbox.setEnabled(true); - } - } - else - { - if (!isNumericBaseType) - { - if (currentMin == null && currentLength == null) - return; - } - else - { - if (currentMinInclusive == null && minimumInclusiveCheckbox.getSelection()) - { - return; - } - else if (currentMinExclusive == null && !minimumInclusiveCheckbox.getSelection()) - { - return; - } - } - minimumInclusiveCheckbox.setEnabled(false); - minValue = null; - } - doUpdateMin = true; - } - catch (NumberFormatException e) - { - // TODO show error message - doUpdateMin = false; - } - } - if (event.widget == maxLengthText) - { - try - { - if (maxValue.length() > 0) - { - if (!isNumericBaseType) - { - Number big = new BigInteger(maxValue); - big.toString(); - if (maxLengthFacet != null) - { - if (maxValue.equals(currentMax) || maxValue.equals(currentLength)) - return; - } - else - { - if (minValue != null && maxValue.equals(minValue) && lengthFacet != null) - { - return; - } - } - } - else - { - if (xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("double").equals(xsdSimpleTypeDefinition) || - xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("float").equals(xsdSimpleTypeDefinition) || - xsdSchema.getSchemaForSchema().resolveSimpleTypeDefinition("decimal").equals(xsdSimpleTypeDefinition)) - { - BigDecimal bigDecimal = new BigDecimal(maxValue); - bigDecimal.toString(); - } - else - { - Number big = new BigInteger(maxValue); - big.toString(); - } - maximumInclusiveCheckbox.setEnabled(true); - } - } - else - { - if (!isNumericBaseType) - { - if (currentMax == null && currentLength == null) - return; - } - else - { - if (currentMaxInclusive == null && maximumInclusiveCheckbox.getSelection()) - { - return; - } - else if (currentMaxExclusive == null && !maximumInclusiveCheckbox.getSelection()) - { - return; - } - maximumInclusiveCheckbox.setEnabled(false); - } - maxValue = null; - } - - doUpdateMax = true; - } - catch (NumberFormatException e) - { - doUpdateMax = false; - // TODO show error message - } - } - - if (XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(xsdSimpleTypeDefinition.getTargetNamespace()) && (doUpdateMax || doUpdateMin)) - { - XSDSimpleTypeDefinition anonymousSimpleType = null; - CompoundCommand compoundCommand = new CompoundCommand(); - ChangeToLocalSimpleTypeCommand changeToAnonymousCommand = null; - if (input instanceof XSDFeature) - { - anonymousSimpleType = XSDCommonUIUtils.getAnonymousSimpleType((XSDFeature)input, xsdSimpleTypeDefinition); - if (anonymousSimpleType == null) - { - anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition(); - anonymousSimpleType.setBaseTypeDefinition(xsdSimpleTypeDefinition); - - changeToAnonymousCommand = new ChangeToLocalSimpleTypeCommand("Constrain length", (XSDFeature)input); - changeToAnonymousCommand.setAnonymousSimpleType(anonymousSimpleType); - compoundCommand.add(changeToAnonymousCommand); - } - - if (!isNumericBaseType) - { - UpdateStringLengthFacetCommand updateCommand = new UpdateStringLengthFacetCommand("", anonymousSimpleType); - if (doUpdateMax) - { - updateCommand.setMax(maxValue); - } - if (doUpdateMin) - { - updateCommand.setMin(minValue); - } - compoundCommand.add(updateCommand); - } - else - { - UpdateNumericBoundsFacetCommand updateCommand = new UpdateNumericBoundsFacetCommand("Update bounds", anonymousSimpleType, minimumInclusiveCheckbox.getSelection(), maximumInclusiveCheckbox.getSelection()); - if (doUpdateMax) - { - updateCommand.setMax(maxValue); - } - if (doUpdateMin) - { - updateCommand.setMin(minValue); - } - compoundCommand.add(updateCommand); - } - command = compoundCommand; - getCommandStack().execute(command); - } - else if (input instanceof XSDSimpleTypeDefinition) - { - if (!isNumericBaseType) - { - UpdateStringLengthFacetCommand updateCommand = new UpdateStringLengthFacetCommand("", xsdSimpleTypeDefinition); - if (doUpdateMax) - { - updateCommand.setMax(maxValue); - } - if (doUpdateMin) - { - updateCommand.setMin(minValue); - } - command = updateCommand; - } - else - { - UpdateNumericBoundsFacetCommand updateCommand = new UpdateNumericBoundsFacetCommand("Update bounds", xsdSimpleTypeDefinition, minimumInclusiveCheckbox.getSelection(), maximumInclusiveCheckbox.getSelection()); - if (doUpdateMax) - { - updateCommand.setMax(maxValue); - } - if (doUpdateMin) - { - updateCommand.setMin(minValue); - } - command = updateCommand; - } - getCommandStack().execute(command); - } - } - else - { - if (!isNumericBaseType) - { - UpdateStringLengthFacetCommand updateCommand = new UpdateStringLengthFacetCommand("", xsdSimpleTypeDefinition); - if (doUpdateMax) - { - updateCommand.setMax(maxValue); - } - if (doUpdateMin) - { - updateCommand.setMin(minValue); - } - getCommandStack().execute(updateCommand); - } - else - { - UpdateNumericBoundsFacetCommand updateCommand = new UpdateNumericBoundsFacetCommand("Update bounds", xsdSimpleTypeDefinition, minimumInclusiveCheckbox.getSelection(), maximumInclusiveCheckbox.getSelection()); - if (doUpdateMax) - { - updateCommand.setMax(maxValue); - } - if (doUpdateMin) - { - updateCommand.setMin(minValue); - } - getCommandStack().execute(updateCommand); - } - - } - setInput(getPart(), getSelection()); - } - - public void widgetSelected(SelectionEvent e) - { - if (e.widget == collapseWhitespaceButton) - { - CompoundCommand compoundCommand = new CompoundCommand(); - XSDSimpleTypeDefinition anonymousSimpleType = null; - if (XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(xsdSimpleTypeDefinition.getTargetNamespace())) - { - if (input instanceof XSDFeature) - { - anonymousSimpleType = XSDCommonUIUtils.getAnonymousSimpleType((XSDFeature)input, xsdSimpleTypeDefinition); - if (anonymousSimpleType == null) - { - anonymousSimpleType = XSDFactory.eINSTANCE.createXSDSimpleTypeDefinition(); - anonymousSimpleType.setBaseTypeDefinition(xsdSimpleTypeDefinition); - - ChangeToLocalSimpleTypeCommand changeToAnonymousCommand = new ChangeToLocalSimpleTypeCommand("Constrain length", (XSDFeature)input); - changeToAnonymousCommand.setAnonymousSimpleType(anonymousSimpleType); - compoundCommand.add(changeToAnonymousCommand); - } - - UpdateXSDWhiteSpaceFacetCommand whiteSpaceCommand = new UpdateXSDWhiteSpaceFacetCommand("Collapse whitespace", anonymousSimpleType, collapseWhitespaceButton.getSelection()); - compoundCommand.add(whiteSpaceCommand); - - getCommandStack().execute(compoundCommand); - } - setInput(getPart(), getSelection()); - } - else - { - UpdateXSDWhiteSpaceFacetCommand whiteSpaceCommand = new UpdateXSDWhiteSpaceFacetCommand("Collapse whitespace", xsdSimpleTypeDefinition, collapseWhitespaceButton.getSelection()); - getCommandStack().execute(whiteSpaceCommand); - } - } - else if (e.widget == minimumInclusiveCheckbox) - { - String minValue = minLengthText.getText().trim(); - if (minValue.length() == 0) minValue = null; - - UpdateNumericBoundsFacetCommand updateCommand = new UpdateNumericBoundsFacetCommand("Update bounds", xsdSimpleTypeDefinition, minimumInclusiveCheckbox.getSelection(), maximumInclusiveCheckbox.getSelection()); - updateCommand.setMin(minValue); - - if (minValue != null) - getCommandStack().execute(updateCommand); - } - else if (e.widget == maximumInclusiveCheckbox) - { - String maxValue = maxLengthText.getText().trim(); - if (maxValue.length() == 0) maxValue = null; - UpdateNumericBoundsFacetCommand updateCommand = new UpdateNumericBoundsFacetCommand("Update bounds", xsdSimpleTypeDefinition, minimumInclusiveCheckbox.getSelection(), maximumInclusiveCheckbox.getSelection()); - updateCommand.setMax(maxValue); - if (maxValue != null) - getCommandStack().execute(updateCommand); - } - else if (e.widget == useEnumerationsButton) - { - constraintsWidget.addButton.setEnabled(true); - if (isListenerEnabled()) - constraintsWidget.setConstraintKind(SpecificConstraintsWidget.ENUMERATION); - } - else if (e.widget == usePatternsButton) - { - constraintsWidget.addButton.setEnabled(false); - if (isListenerEnabled()) - constraintsWidget.setConstraintKind(SpecificConstraintsWidget.PATTERN); - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDFacetSectionFilter.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDFacetSectionFilter.java deleted file mode 100644 index bdc57c5a8d..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDFacetSectionFilter.java +++ /dev/null @@ -1,42 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.eclipse.jface.viewers.IFilter; -import org.eclipse.xsd.XSDFeature; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.XSDTypeDefinition; - -public class XSDFacetSectionFilter implements IFilter -{ - public boolean select(Object toTest) - { - if (toTest instanceof XSDFeature) - { - XSDTypeDefinition type = ((XSDFeature)toTest).getResolvedFeature().getType(); - if (type instanceof XSDSimpleTypeDefinition) - { - return true; - } - } - else if (toTest instanceof XSDSimpleTypeDefinition) - { - XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition)toTest; - if (st.eContainer() instanceof XSDSchema || - st.eContainer() instanceof XSDFeature) - { - return true; - } - } - return false; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDModelGroupDefinitionSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDModelGroupDefinitionSection.java deleted file mode 100644 index 6b2c8e116c..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDModelGroupDefinitionSection.java +++ /dev/null @@ -1,261 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.xerces.util.XMLChar; -import org.eclipse.gef.commands.Command; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.custom.CLabel; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand; -import org.eclipse.wst.xsd.ui.internal.util.TypesHelper; -import org.eclipse.xsd.XSDModelGroupDefinition; -import org.eclipse.xsd.XSDNamedComponent; -import org.eclipse.xsd.util.XSDConstants; -import org.w3c.dom.Element; - -public class XSDModelGroupDefinitionSection extends AbstractSection -{ - protected Text nameText; - protected CCombo componentNameCombo; - boolean isReference; - - public XSDModelGroupDefinitionSection() - { - super(); - } - - protected void createContents(Composite parent) - { - composite = getWidgetFactory().createFlatFormComposite(parent); - - GridLayout gridLayout = new GridLayout(); - gridLayout.numColumns = 2; - composite.setLayout(gridLayout); - - if (isReference) - { - // ------------------------------------------------------------------ - // Ref Label - // ------------------------------------------------------------------ - GridData data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - CLabel refLabel = getWidgetFactory().createCLabel(composite, XSDConstants.REF_ATTRIBUTE + ":"); //$NON-NLS-1$ - refLabel.setLayoutData(data); - - // ------------------------------------------------------------------ - // Ref Combo - // ------------------------------------------------------------------ - - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - - componentNameCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT); - componentNameCombo.addSelectionListener(this); - componentNameCombo.setLayoutData(data); - } - else - { - // ------------------------------------------------------------------ - // NameLabel - // ------------------------------------------------------------------ - GridData data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - CLabel nameLabel = getWidgetFactory().createCLabel(composite, "Name:"); - nameLabel.setLayoutData(data); - - // ------------------------------------------------------------------ - // NameText - // ------------------------------------------------------------------ - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$ - nameText.setLayoutData(data); - nameText.addListener(SWT.Modify, this); - } - } - - public void refresh() - { - super.refresh(); - - if (isReadOnly) - { - composite.setEnabled(false); - } - else - { - composite.setEnabled(true); - } - - setListenerEnabled(false); - - XSDNamedComponent namedComponent = (XSDNamedComponent) input; - - if (isReference) - { - Element element = namedComponent.getElement(); - if (element != null) - { - String attrValue = element.getAttribute(XSDConstants.REF_ATTRIBUTE); - if (attrValue == null) - { - attrValue = ""; - } - componentNameCombo.setText(attrValue); - } - } - else - { - // refresh name - nameText.setText(""); - - String name = namedComponent.getName(); - if (name != null) - { - nameText.setText(name); - } - } - - setListenerEnabled(true); - } - - public void setInput(IWorkbenchPart part, ISelection selection) - { - super.setInput(part, selection); - init(); - relayout(); - - if (isReference) - { - TypesHelper helper = new TypesHelper(xsdSchema); - List items = new ArrayList(); - items = helper.getModelGroups(); - items.add(0, ""); - componentNameCombo.setItems((String [])items.toArray(new String[0])); - } - } - - protected void init() - { - if (input instanceof XSDModelGroupDefinition) - { - XSDModelGroupDefinition group = (XSDModelGroupDefinition) input; - isReference = group.isModelGroupDefinitionReference(); - } - } - - protected void relayout() - { - Composite parentComposite = composite.getParent(); - parentComposite.getParent().setRedraw(false); - - if (parentComposite != null && !parentComposite.isDisposed()) - { - Control[] children = parentComposite.getChildren(); - for (int i = 0; i < children.length; i++) - { - children[i].dispose(); - } - } - - // Now initialize the new handler - createContents(parentComposite); - parentComposite.getParent().layout(true, true); - - // Now turn painting back on - parentComposite.getParent().setRedraw(true); - refresh(); - } - - public void doHandleEvent(Event event) - { - super.doHandleEvent(event); - if (event.widget == nameText) - { - String newValue = nameText.getText().trim(); - if (input instanceof XSDNamedComponent) - { - XSDNamedComponent namedComponent = (XSDNamedComponent) input; - if (!validateSection()) - return; - - Command command = null; - - // Make sure an actual name change has taken place - String oldName = namedComponent.getName(); - if (!newValue.equals(oldName)) - { - command = new UpdateNameCommand("Rename", namedComponent, newValue); - } - - if (command != null && getCommandStack() != null) - { - getCommandStack().execute(command); - } - // doReferentialIntegrityCheck(namedComponent, newValue); - } - } - } - - protected boolean validateSection() - { - if (nameText == null || nameText.isDisposed()) - return true; - - setErrorMessage(null); - - String name = nameText.getText().trim(); - - // validate against NCName - if (name.length() < 1 || !XMLChar.isValidNCName(name)) - { - setErrorMessage("Invalid name"); - return false; - } - - return true; - } - - public void widgetSelected(SelectionEvent e) - { - if (e.widget == componentNameCombo) - { - String newValue = componentNameCombo.getText(); - if (input instanceof XSDNamedComponent) - { - XSDNamedComponent namedComponent = (XSDNamedComponent)input; - Element element = namedComponent.getElement(); - - if (namedComponent instanceof XSDModelGroupDefinition) - { - element.setAttribute(XSDConstants.REF_ATTRIBUTE, newValue); - } - } - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDModelGroupSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDModelGroupSection.java deleted file mode 100644 index afea7e1480..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDModelGroupSection.java +++ /dev/null @@ -1,140 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.custom.CLabel; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateContentModelCommand; -import org.eclipse.wst.xsd.ui.internal.editor.Messages; -import org.eclipse.xsd.XSDCompositor; -import org.eclipse.xsd.XSDModelGroup; - -public class XSDModelGroupSection extends MultiplicitySection -{ - protected CCombo modelGroupCombo; - private String[] modelGroupComboValues = { "sequence", "choice", "all" }; //$NON-NLS-1$ - - public XSDModelGroupSection() - { - super(); - } - - public void createContents(Composite parent) - { - composite = getWidgetFactory().createFlatFormComposite(parent); - - String typeLabel = Messages.UI_LABEL_TYPE; //$NON-NLS-1$ - - GridLayout gridLayout = new GridLayout(); - gridLayout.numColumns = 2; - composite.setLayout(gridLayout); - - // ------------------------------------------------------------------ - // NameLabel - // ------------------------------------------------------------------ - GridData data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - CLabel nameLabel = getWidgetFactory().createCLabel(composite, "Kind:"); //$NON-NLS-1$ - nameLabel.setLayoutData(data); - - // ------------------------------------------------------------------ - // NameText - // ------------------------------------------------------------------ - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - modelGroupCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT); - modelGroupCombo.setLayoutData(data); - modelGroupCombo.addSelectionListener(this); - modelGroupCombo.setItems(modelGroupComboValues); - - // ------------------------------------------------------------------ - // min property - // ------------------------------------------------------------------ - getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_MINOCCURS); - - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - - minCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT); - minCombo.setLayoutData(data); - minCombo.add("0"); //$NON-NLS-1$ - minCombo.add("1"); //$NON-NLS-1$ - minCombo.addListener(SWT.Modify, this); - minCombo.addSelectionListener(this); - - // ------------------------------------------------------------------ - // max property - // ------------------------------------------------------------------ - getWidgetFactory().createCLabel(composite, Messages.UI_LABEL_MAXOCCURS); - - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - - maxCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT); - maxCombo.setLayoutData(data); - maxCombo.add("0"); //$NON-NLS-1$ - maxCombo.add("1"); //$NON-NLS-1$ - maxCombo.add("unbounded"); //$NON-NLS-1$ - maxCombo.addListener(SWT.Modify, this); - maxCombo.addSelectionListener(this); - } - - - public void refresh() - { - super.refresh(); - - if (isReadOnly) - { - composite.setEnabled(false); - } - else - { - composite.setEnabled(true); - } - - setListenerEnabled(false); - - if (input != null) - { - if (input instanceof XSDModelGroup) - { - XSDModelGroup particle = (XSDModelGroup)input; - String modelType = particle.getCompositor().getName(); - modelGroupCombo.setText(modelType); - } - } - - refreshMinMax(); - - setListenerEnabled(true); - } - - public void doWidgetSelected(SelectionEvent e) - { - XSDModelGroup particle = (XSDModelGroup)input; - if (e.widget == modelGroupCombo) - { - XSDCompositor newValue = XSDCompositor.get(modelGroupCombo.getText()); - UpdateContentModelCommand command = new UpdateContentModelCommand("Content Model Change", particle, newValue); - getCommandStack().execute(command); - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDSchemaSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDSchemaSection.java deleted file mode 100644 index 8a326d7062..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDSchemaSection.java +++ /dev/null @@ -1,455 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Collection; -import java.util.Iterator; -import java.util.Map; -import org.eclipse.emf.ecore.EReference; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CLabel; -import org.eclipse.swt.custom.StyleRange; -import org.eclipse.swt.custom.StyledText; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Color; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.wst.xml.core.internal.document.DocumentImpl; -import org.eclipse.wst.xsd.ui.internal.actions.XSDEditNamespacesAction; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.wst.xsd.ui.internal.nsedit.TargetNamespaceChangeHandler; -import org.eclipse.wst.xsd.ui.internal.util.TypesHelper; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.util.XSDConstants; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -public class XSDSchemaSection extends AbstractSection -{ - IWorkbenchPart part; - Text prefixText; - Text targetNamespaceText; - Button editButton; - StyledText errorText; - Color red; - - /** - * - */ - public XSDSchemaSection() - { - super(); - } - - /** - * @see org.eclipse.wst.common.ui.properties.internal.provisional.ITabbedPropertySection#createControls(org.eclipse.swt.widgets.Composite, - * org.eclipse.wst.common.ui.properties.internal.provisional.TabbedPropertySheetWidgetFactory) - */ - public void createContents(Composite parent) - { - composite = getWidgetFactory().createFlatFormComposite(parent); - - GridLayout gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 2; - composite.setLayout(gridLayout); - - GridData data = new GridData(); - - // Create Prefix Label - CLabel prefixLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_SCHEMA_PREFIX")); //$NON-NLS-1$ - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - prefixLabel.setLayoutData(data); - - // Create Prefix Text - prefixText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$ - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - prefixText.setLayoutData(data); - prefixText.addListener(SWT.Modify, this); - - // Create TargetNamespace Label - CLabel targetNamespaceLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_TARGET_NAME_SPACE")); //$NON-NLS-1$ - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - targetNamespaceLabel.setLayoutData(data); - - // Create TargetNamespace Text - targetNamespaceText = getWidgetFactory().createText(composite, "", SWT.NONE); //$NON-NLS-1$ - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - targetNamespaceText.setLayoutData(data); - targetNamespaceText.addListener(SWT.Modify, this); - - // Advanced Button - editButton = getWidgetFactory().createButton(composite, XSDEditorPlugin.getXSDString("_UI_SECTION_ADVANCED_ATTRIBUTES") + "...", SWT.PUSH); - data = new GridData(SWT.END, SWT.CENTER, true, false); - data.horizontalSpan = 2; - editButton.setLayoutData(data); - editButton.addSelectionListener(this); - - // error text - errorText = new StyledText(composite, SWT.FLAT); - errorText.setEditable(false); - errorText.setEnabled(false); - errorText.setText(""); - data = new GridData(); - data.horizontalAlignment = GridData.FILL; - data.horizontalSpan = 2; - data.grabExcessHorizontalSpace = true; - errorText.setLayoutData(data); - - } - - /* - * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh() - */ - public void refresh() - { - setListenerEnabled(false); - - Element element = xsdSchema.getElement(); - - if (element != null) - { - // Handle prefixText - TypesHelper helper = new TypesHelper(xsdSchema); - String aPrefix = helper.getPrefix(element.getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE), false); - - if (aPrefix != null && aPrefix.length() > 0) - { - prefixText.setText(aPrefix); - } - else - { - prefixText.setText(""); //$NON-NLS-1$ - } - - // Handle TargetNamespaceText - String tns = element.getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE); - if (tns != null && tns.length() > 0) - { - targetNamespaceText.setText(tns); - } - else - { - targetNamespaceText.setText(""); //$NON-NLS-1$ - } - errorText.setText(""); - } - setListenerEnabled(true); - } - - public void doHandleEvent(Event event) - { - errorText.setText(""); - String prefixValue = prefixText.getText(); - String tnsValue = targetNamespaceText.getText(); - if (tnsValue.trim().length() == 0) - { - if (prefixValue.trim().length() > 0) - { - errorText.setText(XSDEditorPlugin.getXSDString("_ERROR_TARGET_NAMESPACE_AND_PREFIX")); - int length = errorText.getText().length(); - red = new Color(null, 255, 0, 0); - StyleRange style = new StyleRange(0, length, red, targetNamespaceText.getBackground()); - errorText.setStyleRange(style); - return; - } - } - - if (event.widget == prefixText) - { - updateNamespaceInfo(prefixValue, tnsValue); - } - else if (event.widget == targetNamespaceText) - { - updateNamespaceInfo(prefixValue, tnsValue); - } - } - - public void doWidgetSelected(SelectionEvent e) - { - if (e.widget == editButton) - { - XSDEditNamespacesAction nsAction = new XSDEditNamespacesAction(XSDEditorPlugin.getXSDString("_UI_ACTION_EDIT_NAMESPACES"), xsdSchema.getElement(), null, xsdSchema); //$NON-NLS-1$ - nsAction.run(); - refresh(); - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.wst.common.ui.properties.internal.provisional.ISection#shouldUseExtraSpace() - */ - public boolean shouldUseExtraSpace() - { - return true; - } - - private void updateNamespaceInfo(String newPrefix, String newTargetNamespace) - { - Element element = xsdSchema.getElement(); - DocumentImpl doc = (DocumentImpl) element.getOwnerDocument(); - - String modelTargetNamespace = xsdSchema.getTargetNamespace(); - String oldNamespace = xsdSchema.getTargetNamespace(); - - TypesHelper helper = new TypesHelper(xsdSchema); - String oldPrefix = helper.getPrefix(element.getAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE), false); - - if (modelTargetNamespace == null) - { - modelTargetNamespace = ""; //$NON-NLS-1$ - } - - String targetNamespace = newTargetNamespace.trim(); - String prefix = newPrefix.trim(); - - if (!validatePrefix(prefix) || !validateTargetNamespace(targetNamespace)) - { - return; - } - - if (prefix.length() > 0 && targetNamespace.length() == 0) - { - // can't have blank targetnamespace and yet specify a prefix - return; - } - - doc.getModel().beginRecording(this, XSDEditorPlugin.getXSDString("_UI_TARGETNAMESPACE_CHANGE")); //$NON-NLS-1$ - String xsdForXSDPrefix = xsdSchema.getSchemaForSchemaQNamePrefix(); - Map map = xsdSchema.getQNamePrefixToNamespaceMap(); - - // Check if prefix is blank - // if it is, then make sure we have a prefix - // for schema for schema - if (prefix.length() == 0) - { - // if prefix for schema for schema is blank - // then set it to value specified in preference - // and update ALL nodes with this prefix - if (xsdForXSDPrefix == null || (xsdForXSDPrefix != null && xsdForXSDPrefix.trim().length() == 0)) - { - // get preference prefix - xsdForXSDPrefix = XSDEditorPlugin.getPlugin().getXMLSchemaPrefix(); - // get a unique prefix by checking what's in the map - - xsdForXSDPrefix = getUniqueSchemaForSchemaPrefix(xsdForXSDPrefix, map); - element.setAttribute("xmlns:" + xsdForXSDPrefix, XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001); //$NON-NLS-1$ - - updateAllNodes(element, xsdForXSDPrefix); - - // remove the old xmlns attribute for the schema for schema - if (element.getAttribute("xmlns") != null && //$NON-NLS-1$ - element.getAttribute("xmlns").equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001)) //$NON-NLS-1$ - { - element.removeAttribute("xmlns"); //$NON-NLS-1$ - } - } - } - - if (targetNamespace.length() > 0 || (targetNamespace.length() == 0 && prefix.length() == 0)) - { - // clean up the old prefix for this schema - if (oldPrefix != null && oldPrefix.length() > 0) - { - element.removeAttribute("xmlns:" + oldPrefix); //$NON-NLS-1$ - // element.setAttribute("xmlns:" + prefix, targetNamespace); - // java.util.Map prefixToNameSpaceMap = - // xsdSchema.getQNamePrefixToNamespaceMap(); - // prefixToNameSpaceMap.remove(oldPrefix); - } - else - // if no prefix - { - if (element.getAttribute("xmlns") != null) //$NON-NLS-1$ - { - if (!element.getAttribute("xmlns").equals(XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001)) //$NON-NLS-1$ - { - element.removeAttribute("xmlns"); //$NON-NLS-1$ - } - } - } - } - - if (targetNamespace.length() > 0) - { - if (!modelTargetNamespace.equals(targetNamespace)) - { - element.setAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE, targetNamespace); - } - // now set the new xmlns:prefix attribute - if (prefix.length() > 0) - { - element.setAttribute("xmlns:" + prefix, targetNamespace); //$NON-NLS-1$ - } - else - { - element.setAttribute("xmlns", targetNamespace); //$NON-NLS-1$ - } - // set the targetNamespace attribute - } - else - // else targetNamespace is blank - { - if (prefix.length() == 0) - { - element.removeAttribute(XSDConstants.TARGETNAMESPACE_ATTRIBUTE); - } - } - - // do our own referential integrity - TargetNamespaceChangeHandler targetNamespaceChangeHandler = new TargetNamespaceChangeHandler(xsdSchema, oldNamespace, targetNamespace); - targetNamespaceChangeHandler.resolve(); - - updateElement(xsdSchema); - - doc.getModel().endRecording(this); - } - - // issue (cs) I don't have a clue why we need to call this method - // - private static void updateElement(XSDConcreteComponent concreteComp) - { - try - { - concreteComp.updateElement(); - } - catch (Exception e) - { - for (Iterator containments = concreteComp.eClass().getEAllReferences().iterator(); containments.hasNext(); ) - { - EReference eReference = (EReference)containments.next(); - if (eReference.isContainment()) - { - if (eReference.isMany()) - { - for (Iterator objects = ((Collection)concreteComp.eGet(eReference)).iterator(); objects.hasNext(); ) - { - XSDConcreteComponent xsdConcreteComponent = (XSDConcreteComponent)objects.next(); - try - { - xsdConcreteComponent.updateElement(); - } - catch (Exception ex) {} - } - } - else - { - XSDConcreteComponent xsdConcreteComponent = (XSDConcreteComponent)concreteComp.eGet(eReference); - if (xsdConcreteComponent != null) - { - try - { - xsdConcreteComponent.updateElement(); - } - catch (Exception ex) {} - } - } - } - } - } - } - private String getUniqueSchemaForSchemaPrefix(String xsdForXSDPrefix, Map map) - { - if (xsdForXSDPrefix == null || (xsdForXSDPrefix != null && xsdForXSDPrefix.trim().length() == 0)) - { - xsdForXSDPrefix = "xsd"; //$NON-NLS-1$ - } - // ensure prefix is unique - int prefixExtension = 1; - while (map.containsKey(xsdForXSDPrefix) && prefixExtension < 100) - { - xsdForXSDPrefix = xsdForXSDPrefix + String.valueOf(prefixExtension); - prefixExtension++; - } - return xsdForXSDPrefix; - } - - private void updateAllNodes(Element element, String prefix) - { - element.setPrefix(prefix); - NodeList list = element.getChildNodes(); - if (list != null) - { - for (int i = 0; i < list.getLength(); i++) - { - Node child = list.item(i); - if (child != null && child instanceof Element) - { - child.setPrefix(prefix); - if (child.hasChildNodes()) - { - updateAllNodes((Element) child, prefix); - } - } - } - } - } - - private boolean validateTargetNamespace(String ns) - { - // will allow blank namespace !! - if (ns.equals("")) - { - return true; - } - - String errorMessage = null; - try - { - URI testURI = new URI(ns); - testURI.isAbsolute(); - } - catch (URISyntaxException e) - { - errorMessage = XSDEditorPlugin.getXSDString("_WARN_INVALID_TARGET_NAMESPACE"); //$NON-NLS-1$ - } - - if (errorMessage == null || errorMessage.length() == 0) - { - return true; - } - return false; - } - - public void dispose() - { - super.dispose(); - if (red != null) - { - red.dispose(); - red = null; - } - } - - protected boolean validatePrefix(String prefix) - { - // TODO - return true; - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDSimpleTypeSection.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDSimpleTypeSection.java deleted file mode 100644 index a3bd64c107..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDSimpleTypeSection.java +++ /dev/null @@ -1,646 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; -import java.util.StringTokenizer; - -import org.apache.xerces.util.XMLChar; -import org.eclipse.gef.commands.Command; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.custom.CLabel; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.IWorkbenchPart; -import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; -import org.eclipse.wst.xsd.ui.internal.actions.CreateElementAction; -import org.eclipse.wst.xsd.ui.internal.actions.DOMAttribute; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.wst.xsd.ui.internal.util.XSDDOMHelper; -import org.eclipse.xsd.XSDNamedComponent; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.XSDVariety; -import org.eclipse.xsd.util.XSDConstants; -import org.w3c.dom.Element; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -public class XSDSimpleTypeSection extends AbstractSection -{ - protected Text nameText; - CCombo varietyCombo; - Text typesText; - CLabel typesLabel; - Button button; - XSDSimpleTypeDefinition memberTypeDefinition, itemTypeDefinition, baseTypeDefinition; - - public XSDSimpleTypeSection() - { - super(); - } - - protected void createContents(Composite parent) - { - TabbedPropertySheetWidgetFactory factory = getWidgetFactory(); - composite = factory.createFlatFormComposite(parent); - - GridData data = new GridData(); - - GridLayout gridLayout = new GridLayout(); - gridLayout.marginTop = 0; - gridLayout.marginBottom = 0; - gridLayout.numColumns = 3; - composite.setLayout(gridLayout); - - // ------------------------------------------------------------------ - // NameLabel - // ------------------------------------------------------------------ - - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - CLabel nameLabel = factory.createCLabel(composite, "Name:"); - nameLabel.setLayoutData(data); - - // ------------------------------------------------------------------ - // NameText - // ------------------------------------------------------------------ - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - nameText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$ - nameText.setLayoutData(data); - applyAllListeners(nameText); - - // ------------------------------------------------------------------ - // DummyLabel - // ------------------------------------------------------------------ - getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$ - - // Variety Label - CLabel label = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_VARIETY")); //$NON-NLS-1$ - - // Variety Combo - data = new GridData(); - data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING; - data.grabExcessHorizontalSpace = false; - label.setLayoutData(data); - - varietyCombo = getWidgetFactory().createCCombo(composite, SWT.FLAT); - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - - List list = XSDVariety.VALUES; - Iterator iter = list.iterator(); - while (iter.hasNext()) - { - varietyCombo.add(((XSDVariety) iter.next()).getName()); - } - varietyCombo.addSelectionListener(this); - varietyCombo.setLayoutData(data); - - // ------------------------------------------------------------------ - // DummyLabel - // ------------------------------------------------------------------ - getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$ - - // ------------------------------------------------------------------ - // Types Label - // ------------------------------------------------------------------ - typesLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES")); //$NON-NLS-1$ - - // ------------------------------------------------------------------ - // Types Text - // ------------------------------------------------------------------ - typesText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$ - typesText.addListener(SWT.Modify, this); - data = new GridData(); - data.grabExcessHorizontalSpace = true; - data.horizontalAlignment = GridData.FILL; - typesText.setLayoutData(data); - - button = getWidgetFactory().createButton(composite, "", SWT.PUSH); //$NON-NLS-1$ - button.setImage(XSDEditorPlugin.getXSDImage("icons/browsebutton.gif")); //$NON-NLS-1$ - button.addSelectionListener(this); - } - - public void setInput(IWorkbenchPart part, ISelection selection) - { - super.setInput(part, selection); - relayout(); - } - - protected void relayout() - { - Composite parentComposite = composite.getParent(); - parentComposite.getParent().setRedraw(false); - - if (parentComposite != null && !parentComposite.isDisposed()) - { - Control[] children = parentComposite.getChildren(); - for (int i = 0; i < children.length; i++) - { - children[i].dispose(); - } - } - - // Now initialize the new handler - createContents(parentComposite); - parentComposite.getParent().layout(true, true); - - // Now turn painting back on - parentComposite.getParent().setRedraw(true); - refresh(); - } - - public void refresh() - { - super.refresh(); - - setListenerEnabled(false); - if (isReadOnly) - { - composite.setEnabled(false); - } - else - { - composite.setEnabled(true); - } - - nameText.setText(""); - varietyCombo.setText(""); //$NON-NLS-1$ - typesText.setText(""); //$NON-NLS-1$ - typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE_WITH_COLON")); //$NON-NLS-1$ - - if (input instanceof XSDSimpleTypeDefinition) - { - XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input; - String simpleTypeName = st.getName(); - if (simpleTypeName != null) - { - nameText.setText(simpleTypeName); - } - else - { - nameText.setText("**anonymous**"); - } - - String variety = st.getVariety().getName(); - int intVariety = st.getVariety().getValue(); - - if (variety != null) - { - varietyCombo.setText(variety); - if (intVariety == XSDVariety.ATOMIC) - { - baseTypeDefinition = st.getBaseTypeDefinition(); - String name = ""; - if (baseTypeDefinition != null) - { - name = baseTypeDefinition.getName(); - } - typesText.setText(name); - typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE_WITH_COLON")); //$NON-NLS-1$ - } - else if (intVariety == XSDVariety.LIST) - { - itemTypeDefinition = st.getItemTypeDefinition(); - String name = ""; - if (itemTypeDefinition != null) - { - name = itemTypeDefinition.getName(); - } - typesText.setText(name); - typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_ITEM_TYPE")); //$NON-NLS-1$ - } - else if (intVariety == XSDVariety.UNION) - { - List memberTypesList = st.getMemberTypeDefinitions(); - StringBuffer sb = new StringBuffer(); - for (Iterator i = memberTypesList.iterator(); i.hasNext();) - { - XSDSimpleTypeDefinition typeObject = (XSDSimpleTypeDefinition) i.next(); - String name = typeObject.getQName(); - if (name != null) - { - sb.append(name); - if (i.hasNext()) - { - sb.append(" "); //$NON-NLS-1$ - } - } - } - String memberTypes = sb.toString(); - typesText.setText(memberTypes); - typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES")); //$NON-NLS-1$ - } - } - } - setListenerEnabled(true); - - } - - public void widgetSelected(SelectionEvent e) - { - if (e.widget == varietyCombo) - { - if (input != null) - { - if (input instanceof XSDSimpleTypeDefinition) - { - XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input; - Element parent = st.getElement(); - - String variety = varietyCombo.getText(); - if (variety.equals(XSDVariety.ATOMIC_LITERAL.getName())) - { - typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_BASE_TYPE_WITH_COLON")); //$NON-NLS-1$ - st.setVariety(XSDVariety.ATOMIC_LITERAL); - addCreateElementActionIfNotExist(XSDConstants.RESTRICTION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_RESTRICTION"), parent, null); //$NON-NLS-1$ - } - else if (variety.equals(XSDVariety.UNION_LITERAL.getName())) - { - typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES")); //$NON-NLS-1$ - st.setVariety(XSDVariety.UNION_LITERAL); - addCreateElementActionIfNotExist(XSDConstants.UNION_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_UNION"), parent, null); //$NON-NLS-1$ - } - else if (variety.equals(XSDVariety.LIST_LITERAL.getName())) - { - typesLabel.setText(XSDEditorPlugin.getXSDString("_UI_LABEL_ITEM_TYPE")); //$NON-NLS-1$ - st.setVariety(XSDVariety.LIST_LITERAL); - addCreateElementActionIfNotExist(XSDConstants.LIST_ELEMENT_TAG, XSDEditorPlugin.getXSDString("_UI_ACTION_ADD_LIST"), parent, null); //$NON-NLS-1$ - } - } - } - } - else if (e.widget == button) - { -// Shell shell = Display.getCurrent().getActiveShell(); -// Element element = ((XSDConcreteComponent) input).getElement(); -// Dialog dialog = null; -// String property = ""; -// Element secondaryElement = null; - -// IFile currentIFile = ((IFileEditorInput) getActiveEditor().getEditorInput()).getFile(); - - // issue (cs) need to move to common.ui's selection dialog - /* - XSDComponentSelectionProvider provider = new XSDComponentSelectionProvider(currentIFile, xsdSchema); - dialog = new XSDComponentSelectionDialog(shell, XSDEditorPlugin.getXSDString("_UI_LABEL_SET_TYPE"), provider); - provider.setDialog((XSDComponentSelectionDialog) dialog); - - if (input instanceof XSDSimpleTypeDefinition) - { - XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input; - Element simpleTypeElement = st.getElement(); - if (st.getVariety() == XSDVariety.LIST_LITERAL) - { - Element listElement = (Element) itemTypeDefinition.getElement(); - // dialog = new TypesDialog(shell, listElement, - // XSDConstants.ITEMTYPE_ATTRIBUTE, xsdSchema); - // dialog.showComplexTypes = false; - provider.showComplexTypes(false); - - secondaryElement = listElement; - property = XSDConstants.ITEMTYPE_ATTRIBUTE; - } - else if (st.getVariety() == XSDVariety.ATOMIC_LITERAL) - { - Element derivedByElement = (Element) baseTypeDefinition.getElement(); - if (derivedByElement != null) - { - // dialog = new TypesDialog(shell, derivedByElement, - // XSDConstants.BASE_ATTRIBUTE, xsdSchema); - // dialog.showComplexTypes = false; - provider.showComplexTypes(false); - - secondaryElement = derivedByElement; - property = XSDConstants.BASE_ATTRIBUTE; - } - else - { - return; - } - } - else if (st.getVariety() == XSDVariety.UNION_LITERAL) - { - SimpleContentUnionMemberTypesDialog unionDialog = new SimpleContentUnionMemberTypesDialog(shell, st); - unionDialog.setBlockOnOpen(true); - unionDialog.create(); - - int result = unionDialog.open(); - if (result == Window.OK) - { - String newValue = unionDialog.getResult(); - // beginRecording(XSDEditorPlugin.getXSDString("_UI_LABEL_MEMBERTYPES_CHANGE"), - // element); //$NON-NLS-1$ - Element unionElement = (Element) memberTypeDefinition.getElement(); - unionElement.setAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, newValue); - - if (newValue.length() > 0) - { - unionElement.setAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, newValue); - } - else - { - unionElement.removeAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE); - } - // endRecording(unionElement); - refresh(); - } - return; - } - else - { - property = "type"; - } - } - else - { - property = "type"; - } - // beginRecording(XSDEditorPlugin.getXSDString("_UI_TYPE_CHANGE"), - // element); //$NON-NLS-1$ - dialog.setBlockOnOpen(true); - dialog.create(); - int result = dialog.open(); - - if (result == Window.OK) - { - if (secondaryElement == null) - { - secondaryElement = element; - } - XSDSetTypeHelper helper = new XSDSetTypeHelper(currentIFile, xsdSchema); - helper.setType(secondaryElement, property, ((XSDComponentSelectionDialog) dialog).getSelection()); - - XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input; - st.setElement(element); - updateSimpleTypeFacets();*/ - } - // endRecording(element); - - refresh(); - } - - public boolean shouldUseExtraSpace() - { - return false; - } - - // issue (cs) this method seems to be utilizing 'old' classes, can we reimplement? - // (e.g. ChangeElementAction, XSDDOMHelper, etc) - protected boolean addCreateElementActionIfNotExist(String elementTag, String label, Element parent, Node relativeNode) - { - XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input; - List attributes = new ArrayList(); - String reuseType = null; - - // beginRecording(XSDEditorPlugin.getXSDString("_UI_LABEL_VARIETY_CHANGE"), - // parent); //$NON-NLS-1$ - if (elementTag.equals(XSDConstants.RESTRICTION_ELEMENT_TAG)) - { - Element listNode = getFirstChildNodeIfExists(parent, XSDConstants.LIST_ELEMENT_TAG, false); - if (listNode != null) - { - reuseType = listNode.getAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE); - XSDDOMHelper.removeNodeAndWhitespace(listNode); - } - - Element unionNode = getFirstChildNodeIfExists(parent, XSDConstants.UNION_ELEMENT_TAG, false); - if (unionNode != null) - { - String memberAttr = unionNode.getAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE); - if (memberAttr != null) - { - StringTokenizer stringTokenizer = new StringTokenizer(memberAttr); - reuseType = stringTokenizer.nextToken(); - } - XSDDOMHelper.removeNodeAndWhitespace(unionNode); - } - - if (reuseType == null) - { - reuseType = getBuiltInStringQName(); - } - attributes.add(new DOMAttribute(XSDConstants.BASE_ATTRIBUTE, reuseType)); - st.setItemTypeDefinition(null); - } - else if (elementTag.equals(XSDConstants.LIST_ELEMENT_TAG)) - { - Element restrictionNode = getFirstChildNodeIfExists(parent, XSDConstants.RESTRICTION_ELEMENT_TAG, false); - if (restrictionNode != null) - { - reuseType = restrictionNode.getAttribute(XSDConstants.BASE_ATTRIBUTE); - XSDDOMHelper.removeNodeAndWhitespace(restrictionNode); - } - Element unionNode = getFirstChildNodeIfExists(parent, XSDConstants.UNION_ELEMENT_TAG, false); - if (unionNode != null) - { - String memberAttr = unionNode.getAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE); - if (memberAttr != null) - { - StringTokenizer stringTokenizer = new StringTokenizer(memberAttr); - reuseType = stringTokenizer.nextToken(); - } - XSDDOMHelper.removeNodeAndWhitespace(unionNode); - } - attributes.add(new DOMAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE, reuseType)); - } - else if (elementTag.equals(XSDConstants.UNION_ELEMENT_TAG)) - { - Element listNode = getFirstChildNodeIfExists(parent, XSDConstants.LIST_ELEMENT_TAG, false); - if (listNode != null) - { - reuseType = listNode.getAttribute(XSDConstants.ITEMTYPE_ATTRIBUTE); - XSDDOMHelper.removeNodeAndWhitespace(listNode); - } - Element restrictionNode = getFirstChildNodeIfExists(parent, XSDConstants.RESTRICTION_ELEMENT_TAG, false); - if (restrictionNode != null) - { - reuseType = restrictionNode.getAttribute(XSDConstants.BASE_ATTRIBUTE); - XSDDOMHelper.removeNodeAndWhitespace(restrictionNode); - } - attributes.add(new DOMAttribute(XSDConstants.MEMBERTYPES_ATTRIBUTE, reuseType)); - st.setItemTypeDefinition(null); - } - - if (getFirstChildNodeIfExists(parent, elementTag, false) == null) - { - Action action = addCreateElementAction(elementTag, label, attributes, parent, relativeNode); - action.run(); - } - - st.setElement(parent); - st.updateElement(); - // endRecording(parent); - return true; - } - - protected Action addCreateElementAction(String elementTag, String label, List attributes, Element parent, Node relativeNode) - { - CreateElementAction action = new CreateElementAction(label); - action.setElementTag(elementTag); - action.setAttributes(attributes); - action.setParentNode(parent); - action.setRelativeNode(relativeNode); - return action; - } - - protected Element getFirstChildNodeIfExists(Node parent, String elementTag, boolean isRef) - { - NodeList children = parent.getChildNodes(); - Element targetNode = null; - for (int i = 0; i < children.getLength(); i++) - { - Node child = children.item(i); - if (child != null && child instanceof Element) - { - if (XSDDOMHelper.inputEquals((Element) child, elementTag, isRef)) - { - targetNode = (Element) child; - break; - } - } - } - return targetNode; - } - - protected String getBuiltInStringQName() - { - String stringName = "string"; //$NON-NLS-1$ - - if (xsdSchema != null) - { - String schemaForSchemaPrefix = xsdSchema.getSchemaForSchemaQNamePrefix(); - if (schemaForSchemaPrefix != null && schemaForSchemaPrefix.length() > 0) - { - String prefix = xsdSchema.getSchemaForSchemaQNamePrefix(); - if (prefix != null && prefix.length() > 0) - { - stringName = prefix + ":" + stringName; //$NON-NLS-1$ - } - } - } - return stringName; - } - - private void updateSimpleTypeFacets() - { - XSDSimpleTypeDefinition st = (XSDSimpleTypeDefinition) input; - Element simpleTypeElement = st.getElement(); - Element derivedByElement = baseTypeDefinition.getElement(); - if (derivedByElement != null) - { - List nodesToRemove = new ArrayList(); - NodeList childList = derivedByElement.getChildNodes(); - int length = childList.getLength(); - for (int i = 0; i < length; i++) - { - Node child = childList.item(i); - if (child instanceof Element) - { - Element elementChild = (Element) child; - if (!(elementChild.getLocalName().equals("pattern") || elementChild.getLocalName().equals("enumeration") || //$NON-NLS-1$ - XSDDOMHelper.inputEquals(elementChild, XSDConstants.SIMPLETYPE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals(elementChild, XSDConstants.ANNOTATION_ELEMENT_TAG, false) - || XSDDOMHelper.inputEquals(elementChild, XSDConstants.ATTRIBUTE_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals(elementChild, XSDConstants.ATTRIBUTE_ELEMENT_TAG, true) - || XSDDOMHelper.inputEquals(elementChild, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, false) || XSDDOMHelper.inputEquals(elementChild, XSDConstants.ATTRIBUTEGROUP_ELEMENT_TAG, true) || XSDDOMHelper.inputEquals(elementChild, - XSDConstants.ANYATTRIBUTE_ELEMENT_TAG, false))) - { - nodesToRemove.add(child); - } - } - } - Iterator iter = nodesToRemove.iterator(); - while (iter.hasNext()) - { - Element facetToRemove = (Element) iter.next(); - String facetName = facetToRemove.getLocalName(); - Iterator it = st.getValidFacets().iterator(); - boolean doRemove = true; - while (it.hasNext()) - { - String aValidFacet = (String) it.next(); - if (aValidFacet.equals(facetName)) - { - doRemove = false; - break; - } - } - if (doRemove) - { - XSDDOMHelper.removeNodeAndWhitespace(facetToRemove); - } - } - } - } - // TODO: Common this up with element declaration - public void doHandleEvent(Event event) - { - if (event.widget == nameText) - { - String newValue = nameText.getText().trim(); - if (input instanceof XSDNamedComponent) - { - XSDNamedComponent namedComponent = (XSDNamedComponent)input; - if (!validateSection()) - return; - - Command command = null; - - // Make sure an actual name change has taken place - String oldName = namedComponent.getName(); - if (!newValue.equals(oldName)) - { - command = new UpdateNameCommand("Rename", namedComponent, newValue); - } - - if (command != null && getCommandStack() != null) - { - getCommandStack().execute(command); - } - - } - } - } - - protected boolean validateSection() - { - if (nameText == null || nameText.isDisposed()) - return true; - - setErrorMessage(null); - - String name = nameText.getText().trim(); - - // validate against NCName - if (name.length() < 1 || !XMLChar.isValidNCName(name)) - { - setErrorMessage("Invalid name"); - return false; - } - - return true; - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDTableTreeViewer.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDTableTreeViewer.java deleted file mode 100644 index 962795b7f7..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDTableTreeViewer.java +++ /dev/null @@ -1,126 +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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections; - -import org.eclipse.jface.action.IMenuListener; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.jface.action.Separator; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Menu; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.ui.internal.tabletree.XMLTableTreeContentProvider; -import org.eclipse.wst.xml.ui.internal.tabletree.XMLTableTreeViewer; -import org.w3c.dom.Element; - -public class XSDTableTreeViewer extends XMLTableTreeViewer -{ - - String filter = ""; - - class XSDActionMenuListener implements IMenuListener - { - public void menuAboutToShow(IMenuManager menuManager) - { - // used to disable NodeSelection listening while running NodeAction - // XSDActionManager nodeActionManager = new XSDActionManager(fModel, - // XSDTableTreeViewer.this); - // nodeActionManager.setCommandStack(commandStack); - // nodeActionManager.fillContextMenu(menuManager, getSelection()); - - // used to disable NodeSelection listening while running NodeAction - // XMLNodeActionManager nodeActionManager = new - // XMLNodeActionManager(((IDOMDocument) getInput()).getModel(), - // XMLTableTreeViewer.this) { - if (getInput() != null) - { - XSDActionManager nodeActionManager = new XSDActionManager(((IDOMDocument) (((Element) getInput()).getOwnerDocument())).getModel(), XSDTableTreeViewer.this); - // nodeActionManager.setCommandStack(commandStack); - nodeActionManager.fillContextMenu(menuManager, getSelection()); - } - - } - } - - public XSDTableTreeViewer(Composite parent) - { - super(parent); - // treeExtension.setCellModifier(null); - getTree().setLinesVisible(true); - - // treeExtension = new XMLTreeExtension(getTree()); - - // Reassign the content provider - XMLTableTreeContentProvider provider = new MyContentProvider(); - // provider.addViewer(this); - - setContentProvider(provider); - setLabelProvider(provider); - - // setViewerSelectionManager(new ViewerSelectionManagerImpl(null)); - } - - protected Object getRoot() - { - return super.getRoot(); - } - - public void setFilter(String filter) - { - this.filter = filter; - } - - protected void createContextMenu() - { - // TODO Verify if this is okay to override the MenuManager - MenuManager contextMenu = new MenuManager("#PopUp"); //$NON-NLS-1$ - contextMenu.add(new Separator("additions")); //$NON-NLS-1$ - contextMenu.setRemoveAllWhenShown(true); - - // This is the line we have to modify - contextMenu.addMenuListener(new XSDActionMenuListener()); - Menu menu = contextMenu.createContextMenu(getControl()); - getControl().setMenu(menu); - } - - boolean added = false; - - class MyContentProvider extends XMLTableTreeContentProvider - { - - // public Object[] getChildren(Object element) { - // - // if (!added) { - // if (element instanceof Element) { - // added = true; - // Element elem = (Element)element; - // if (elem instanceof INodeNotifier) { - // viewerNotifyingAdapterFactory.adapt((INodeNotifier) elem); - // } - // // return new Object[] {elem}; - // } - // } - // return super.getChildren(element); - // } - - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) - { - added = false; - if (oldInput instanceof Element) - oldInput = ((Element) oldInput).getOwnerDocument(); - - if (newInput instanceof Element) - newInput = ((Element) newInput).getOwnerDocument(); - super.inputChanged(viewer, oldInput, newInput); - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/AddExtensionsComponentDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/AddExtensionsComponentDialog.java deleted file mode 100644 index 538483c0a4..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/AddExtensionsComponentDialog.java +++ /dev/null @@ -1,566 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import java.util.ArrayList; -import java.util.List; - -import org.apache.xerces.dom.DocumentImpl; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.viewers.DoubleClickEvent; -import org.eclipse.jface.viewers.IDoubleClickListener; -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredContentProvider; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.StructuredSelection; -import org.eclipse.jface.viewers.TableViewer; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerFilter; -import org.eclipse.jface.window.Window; -import org.eclipse.swt.SWT; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; -import org.eclipse.swt.graphics.Cursor; -import org.eclipse.swt.graphics.Image; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.MessageBox; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Table; -import org.eclipse.swt.widgets.TableItem; -import org.eclipse.ui.dialogs.SelectionDialog; -import org.eclipse.wst.xsd.contentmodel.internal.XSDImpl; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDSchema; -import org.w3c.dom.Document; -import org.w3c.dom.Element; - -public class AddExtensionsComponentDialog extends SelectionDialog implements ISelectionChangedListener, SelectionListener -{ - // when this dialog is created it needs to know which registry it is going to use,the WSDL or the XSD, - // hence we need this field - static ExtensionsSchemasRegistry registry; - - protected static final Image DEFAULT_ELEMENT_ICON = XSDEditorPlugin.getXSDImage("icons/XSDElement.gif"); - protected static final Image DEFAULT_ATTRIBUTE_ICON = XSDEditorPlugin.getXSDImage("icons/XSDAttribute.gif"); - - /** A temporary Document in which we create temporary DOM element for each element in the - * Element view. (required by LabelProvider) */ - protected static Document tempDoc = new DocumentImpl(); - - Button addButton, removeButton, editButton; - - public AddExtensionsComponentDialog(Shell parent, ExtensionsSchemasRegistry registry) - { - super(parent); - setTitle("Add Extension Components"); - setShellStyle(SWT.APPLICATION_MODAL | SWT.RESIZE | SWT.CLOSE); - - this.registry = registry; - } - - private List fInput; - - private TableViewer categoryTableViewer, elementTableViewer; - private ArrayList existingNames; - - private ViewerFilter elementTableViewerFilter; - - public void setInput(List input) - { - this.fInput = input; - } - - protected Control createDialogArea(Composite container) - { - Composite parent = (Composite) super.createDialogArea(container); - - Composite categoryComposite = new Composite(parent, SWT.NONE); - GridLayout gl = new GridLayout(); - gl.numColumns = 2; - gl.marginHeight = 0; - gl.marginWidth = 0; - GridData data = new GridData(GridData.FILL_BOTH); - categoryComposite.setLayoutData(data); - categoryComposite.setLayout(gl); - - Label label = new Label(categoryComposite, SWT.LEFT); - label.setText("Extension Categories:"); - - new Label(categoryComposite, SWT.NONE); - - categoryTableViewer = new TableViewer(categoryComposite, getTableStyle()); - categoryTableViewer.setContentProvider(new CategoryContentProvider()); - categoryTableViewer.setLabelProvider(new CategoryLabelProvider()); - categoryTableViewer.setInput(fInput); - categoryTableViewer.addSelectionChangedListener(this); - - GridData gd = new GridData(GridData.FILL_BOTH); - Table table = categoryTableViewer.getTable(); - table.setLayoutData(gd); - table.setFont(container.getFont()); - - Composite buttonComposite = new Composite(categoryComposite, SWT.NONE); - gl = new GridLayout(); - gl.makeColumnsEqualWidth = true; - gl.numColumns = 1; - data = new GridData(); - data.horizontalAlignment = SWT.FILL; - buttonComposite.setLayoutData(data); - buttonComposite.setLayout(gl); - - addButton = new Button(buttonComposite, SWT.PUSH); - addButton.setText("Add..."); - addButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - addButton.addSelectionListener(this); - - removeButton = new Button(buttonComposite, SWT.PUSH); - removeButton.setText("Remove"); - removeButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - removeButton.addSelectionListener(this); - - editButton = new Button(buttonComposite, SWT.PUSH); - editButton.setText("Edit"); - editButton.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); - editButton.addSelectionListener(this); - - List initialSelection = getInitialElementSelections(); - if (initialSelection != null) - categoryTableViewer.setSelection(new StructuredSelection(initialSelection)); - - Label elementLabel = new Label(categoryComposite, SWT.LEFT); - elementLabel.setText("Available components to Add:"); - - new Label(categoryComposite, SWT.NONE); - - elementTableViewer = new TableViewer(categoryComposite, getTableStyle()); - elementTableViewer.setContentProvider(new ElementContentProvider()); - elementTableViewer.setLabelProvider(new ElementLabelProvider()); - elementTableViewer.setInput(null); - elementTableViewer.addDoubleClickListener(new IDoubleClickListener() - { - public void doubleClick(DoubleClickEvent event) - { - okPressed(); - } - }); - if ( elementTableViewerFilter != null){ - elementTableViewer.addFilter(elementTableViewerFilter); - } - - gd = new GridData(GridData.FILL_BOTH); - table = elementTableViewer.getTable(); - table.setLayoutData(gd); - table.setFont(container.getFont()); - - elementTableViewer.addSelectionChangedListener(new ISelectionChangedListener() { - public void selectionChanged(SelectionChangedEvent event) { - getButton(IDialogConstants.OK_ID).setEnabled(true); - } - }); - - return parent; - } - - public void create() - { - super.create(); - if (categoryTableViewer.getTable().getItemCount() > 0) - { - categoryTableViewer.getTable().select(0); - categoryTableViewer.setSelection(new StructuredSelection(categoryTableViewer.getElementAt(0))); - } - - // Setup the list of category names that already exist - existingNames = new ArrayList(); - TableItem[] categoryNames = categoryTableViewer.getTable().getItems(); - for (int i = 0; i < categoryNames.length; i++ ){ - existingNames.add(categoryNames[i].getText()); - } - - getButton(IDialogConstants.OK_ID).setEnabled(false); - } - - public void addElementsTableFilter(ViewerFilter filter){ - elementTableViewerFilter = filter; - } - - protected Point getInitialSize() - { - return getShell().computeSize(400, 300); - } - - /** - * Return the style flags for the table viewer. - * - * @return int - */ - protected int getTableStyle() - { - return SWT.SINGLE | SWT.H_SCROLL | SWT.V_SCROLL | SWT.BORDER; - } - - /* - * Overrides method from Dialog - */ - protected void okPressed() - { - // Build a list of selected children. - getShell().setCursor(new Cursor(getShell().getDisplay(), SWT.CURSOR_WAIT)); - IStructuredSelection elementSelection = (IStructuredSelection) elementTableViewer.getSelection(); - IStructuredSelection categorySelection = (IStructuredSelection) categoryTableViewer.getSelection(); - List result = new ArrayList(); - result.add(elementSelection.getFirstElement()); - result.add(categorySelection.getFirstElement()); - if (elementSelection.getFirstElement() != null) - { - setResult(result); - } - else - { - setResult(null); - } - super.okPressed(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.swt.events.SelectionListener#widgetSelected(org.eclipse.swt.events.SelectionEvent) - */ - public void widgetSelected(SelectionEvent e) - { - if (e.widget == addButton) - { - AddNewCategoryDialog addNewCategoryDialog - = new AddNewCategoryDialog(getShell()); - - addNewCategoryDialog.setUnavailableCategoryNames(existingNames); - - if ( addNewCategoryDialog.open() == Window.OK ){ - SpecificationForExtensionsSchema schemaSpec = addNewCategoryDialog.getExtensionsSchemaSpec(); - - fInput.add(schemaSpec); - existingNames.add(schemaSpec.getDisplayName()); - - // refresh without updating labels of existing TableItems - categoryTableViewer.refresh(false); - - categoryTableViewer.setSelection(new StructuredSelection(schemaSpec)); - getButton(IDialogConstants.OK_ID).setEnabled(false); - } - } - else if (e.widget == removeButton) - { - TableItem[] selections = categoryTableViewer.getTable().getSelection(); - for (int i =0; i < selections.length; i++){ - fInput.remove(selections[i].getData() ); - } - categoryTableViewer.refresh(false); - - elementTableViewer.setInput(null); - elementTableViewer.refresh(); - - // TODO auto select either the prev category, the next category or the first category in the Table - getButton(IDialogConstants.OK_ID).setEnabled(false); - } - else if (e.widget == editButton) - { - // use this dialog not for adding but for editing purpose. - AddNewCategoryDialog dialog = new AddNewCategoryDialog(getShell(), "Edit Category"); - if ( dialog.open() == Window.OK){ - TableItem[] selections = categoryTableViewer.getTable().getSelection(); - SpecificationForExtensionsSchema spec = (SpecificationForExtensionsSchema) selections[0].getData(); - - spec.setDisplayName(dialog.getNewCategoryName()); - spec.setLocation(dialog.getCategoryLocation()); - categoryTableViewer.update(spec, null); - refreshElementsViewer(spec); - } - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.swt.events.SelectionListener#widgetDefaultSelected(org.eclipse.swt.events.SelectionEvent) - */ - public void widgetDefaultSelected(SelectionEvent event) - { - - } - - public void selectionChanged(SelectionChangedEvent event) - { - if (event.getSource() == categoryTableViewer) - { - ISelection selection = event.getSelection(); - if (selection instanceof StructuredSelection) - { - Object obj = ((StructuredSelection) selection).getFirstElement(); - if (obj instanceof SpecificationForExtensionsSchema) - { - SpecificationForExtensionsSchema spec = (SpecificationForExtensionsSchema) obj; - - refreshElementsViewer(spec); - - if ( spec.isDefautSchema() ){ - editButton.setEnabled(false); - removeButton.setEnabled(false); - } - else{ - editButton.setEnabled(true); - removeButton.setEnabled(true); - } - - getButton(IDialogConstants.OK_ID).setEnabled(false); - } - } - } - } - - private void refreshElementsViewer(SpecificationForExtensionsSchema spec) { - XSDSchema xsdSchema = getASISchemaModel(spec); - - if (xsdSchema == null){ - MessageBox errDialog = new MessageBox(getShell(), SWT.ICON_ERROR); - errDialog.setText("Invalid Category"); - errDialog.setMessage("The xsd file of the selected category cannot be parsed. \n" - +"Please validate the file."); - errDialog.open(); - return; - } - - List allItems = buildInput(xsdSchema); - elementTableViewer.setInput(allItems); - } - - private static List buildInput(XSDSchema xsdSchema) - { - List elements = xsdSchema.getElementDeclarations(); - List attributes = xsdSchema.getAttributeDeclarations(); - String targetNamespace = xsdSchema.getTargetNamespace(); - - // For safety purpose: We don't append 'attributes' to 'elements' - // ArrayStoreException(or similar one) may occur - List allItems = new ArrayList(attributes.size() + elements.size()); - { - // getElementDeclarations returns a lot of elements from import - // statement, we - // only add non-imported elements here. (trung) - for (int i = 0; i < elements.size(); i++) - { - XSDElementDeclaration currentElement = (XSDElementDeclaration) elements.get(i); - if (currentElement.getTargetNamespace().equals(targetNamespace)) - allItems.add(currentElement); - } - // getAttributeDeclarations also returns a lot of elements from - // import statement, we - // only add non-imported elements here. (trung) - for (int i = 0; i < attributes.size(); i++) - { - XSDAttributeDeclaration currentAttribute = (XSDAttributeDeclaration) attributes.get(i); - if (currentAttribute.isGlobal() && currentAttribute.getTargetNamespace().equals(targetNamespace)) - allItems.add(currentAttribute); - } - } - return allItems; - } - - - private static XSDSchema getASISchemaModel(SpecificationForExtensionsSchema extensionsSchemaSpec) - { - XSDSchema xsdSchema = XSDImpl.buildXSDModel(extensionsSchemaSpec.getLocation()); - - // now that the .xsd file is read, we can retrieve the namespace of this xsd file - // and set the namespace for 'properties' - if ( extensionsSchemaSpec.getNamespaceURI() == null){ - extensionsSchemaSpec.setNamespaceURI( xsdSchema.getTargetNamespace()); - } - - return xsdSchema; - } - - static class CategoryContentProvider implements IStructuredContentProvider - { - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) - */ - public Object[] getElements(Object inputElement) - { - SpecificationForExtensionsSchema[] extensionsSchemaSpecs = null; - try - { - List inputList = (List) inputElement; - extensionsSchemaSpecs = (SpecificationForExtensionsSchema[]) inputList.toArray(new SpecificationForExtensionsSchema[0]); - } - catch (Exception e) - { - e.printStackTrace(); - } - return extensionsSchemaSpecs; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.IContentProvider#dispose() - */ - public void dispose() - { - // Do nothing - - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, - * java.lang.Object, java.lang.Object) - */ - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) - { - // Do nothing - - } - } - - static class CategoryLabelProvider extends LabelProvider - { - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) - */ - public Image getImage(Object element) - { - return XSDEditorPlugin.getXSDImage("icons/appinfo_category.gif"); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) - */ - public String getText(Object element) - { - if (element instanceof SpecificationForExtensionsSchema) - return ((SpecificationForExtensionsSchema) element).getDisplayName(); - - return super.getText(element); - } - } - - static class ElementContentProvider implements IStructuredContentProvider - { - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.IStructuredContentProvider#getElements(java.lang.Object) - */ - public Object[] getElements(Object inputElement) - { - if (inputElement instanceof List) - { - return ((List) inputElement).toArray(); - } - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.IContentProvider#dispose() - */ - public void dispose() - { - // Do nothing - - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.IContentProvider#inputChanged(org.eclipse.jface.viewers.Viewer, - * java.lang.Object, java.lang.Object) - */ - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) - { - // Do nothing - - } - } - - static class ElementLabelProvider extends LabelProvider - { - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.ILabelProvider#getImage(java.lang.Object) - */ - public Image getImage(Object element) - { - if ( element instanceof XSDElementDeclaration){ - - // Workaround trick: (trung) we create a temporary Dom element and put it in the label provider - // to get the image. - String namespace = ((XSDElementDeclaration) element).getSchema().getTargetNamespace(); - String name = ((XSDElementDeclaration) element).getName(); - Element tempElement = tempDoc.createElementNS(namespace, name); - ILabelProvider lp = registry.getLabelProvider(tempElement); - if (lp != null){ - Image img = lp.getImage(tempElement); - - if (img != null){ - return img; - } - } - return DEFAULT_ELEMENT_ICON; - } - else if ( element instanceof XSDAttributeDeclaration){ - return DEFAULT_ATTRIBUTE_ICON; - } - return null; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jface.viewers.ILabelProvider#getText(java.lang.Object) - */ - public String getText(Object element) - { - if (element instanceof XSDElementDeclaration) - return ((XSDElementDeclaration) element).getName(); - if (element instanceof XSDAttributeDeclaration ) - return ((XSDAttributeDeclaration) element).getName(); - return super.getText(element); - } - } - - public boolean close() - { - return super.close(); - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/AddNewCategoryDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/AddNewCategoryDialog.java deleted file mode 100644 index 8e32319838..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/AddNewCategoryDialog.java +++ /dev/null @@ -1,319 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import java.util.List; - -import org.eclipse.core.resources.IFile; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.MenuManager; -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.window.Window; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CLabel; -import org.eclipse.swt.events.ModifyEvent; -import org.eclipse.swt.events.ModifyListener; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.graphics.Point; -import org.eclipse.swt.graphics.Rectangle; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Menu; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.swt.widgets.Text; -import org.eclipse.swt.widgets.ToolBar; -import org.eclipse.swt.widgets.ToolItem; -import org.eclipse.wst.common.ui.internal.dialogs.SelectSingleFileDialog; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; - -public class AddNewCategoryDialog extends Dialog -{ - - private static final String SCHEMA_LABEL = "Schema:"; - private static final String NAME_LABEL = "Name:"; - private String dialogTitle = "Add Category"; - private MenuManager browseMenu; - private Label name; - private Text nameText; - private Label schema; - private CLabel schemaDisplayer; - private ToolBar browseToolBar; - private ToolItem browseItem; - - private List invalidNames; - private String appInfoSchemaLocation; - private String categoryName; - private CLabel errDisplayer; - - private boolean isCategoryNameValid; - - public AddNewCategoryDialog(Shell parentShell) - { - super(parentShell); - } - - public AddNewCategoryDialog(Shell parentShell, String dialogTitle) - { - super(parentShell); - this.dialogTitle = dialogTitle; - } - - /** - * receive a List of names which have already been added to the category list - * - * @param unavailNames - * Array of unvailable names - */ - public void setUnavailableCategoryNames(List unavailNames) - { - invalidNames = unavailNames; - } - - public String getNewCategoryName() - { - return categoryName.trim(); - } - - public String getCategoryLocation() - { - return appInfoSchemaLocation; - } - - public SpecificationForExtensionsSchema getExtensionsSchemaSpec(){ - SpecificationForExtensionsSchema schemaSpec = new SpecificationForExtensionsSchema(); - schemaSpec.setDisplayName(getNewCategoryName()); - schemaSpec.setLocation(getCategoryLocation()); - - return schemaSpec; - } - - // we initially disable the Ok button - protected Control createButtonBar(Composite parent) - { - Control result = super.createButtonBar(parent); - getButton(IDialogConstants.OK_ID).setEnabled(false); - return result; - } - - protected Control createDialogArea(Composite parent) - { - getShell().setText(dialogTitle); - - Composite mainComposite = (Composite) super.createDialogArea(parent); - GridLayout layout = new GridLayout(3, false); - layout.marginTop = 10; - mainComposite.setLayout(layout); - mainComposite.setLayoutData(new GridData(GridData.FILL_BOTH)); - GridData data = new GridData(); - data.widthHint = 400; - - mainComposite.setLayoutData(data); - - // Line 1, name - name = new Label(mainComposite, SWT.NONE); - name.setText(NAME_LABEL); - - nameText = new Text(mainComposite, SWT.BORDER | SWT.SINGLE); - nameText.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - Button hidden = new Button(mainComposite, SWT.NONE); - hidden.setVisible(false); - - // Line 2, schema - schema = new Label(mainComposite, SWT.NONE); - schema.setText(SCHEMA_LABEL); - - schemaDisplayer = new CLabel(mainComposite, SWT.BORDER | SWT.SINGLE); - schemaDisplayer.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - - browseToolBar = new ToolBar(mainComposite, SWT.FLAT); - browseItem = new ToolItem(browseToolBar, SWT.NONE); - // TODO: Should be able to get the image from the XML plugin. Don't need - // to copy to XSDEditor icons folder like this. - browseItem.setImage(XSDEditorPlugin.getXSDImage("icons/appinfo_browse.gif")); - - browseMenu = new MenuManager(); - - BrowseInWorkspaceAction browseInWorkspace = new BrowseInWorkspaceAction(); - browseMenu.add(browseInWorkspace); - - BrowseCatalogAction browseCatalog = new BrowseCatalogAction(); - browseMenu.add(browseCatalog); - - browseItem.addSelectionListener(new SelectionAdapter() - { - public void widgetSelected(SelectionEvent e) - { - Menu menu = browseMenu.createContextMenu(getShell()); - Rectangle bounds = browseItem.getBounds(); - Point topLeft = new Point(bounds.x, bounds.y + bounds.height); - topLeft = browseToolBar.toDisplay(topLeft); - menu.setLocation(topLeft.x, topLeft.y); - menu.setVisible(true); - } - }); - - // Composite errComp = new Composite(mainComposite, SWT.NONE); - // errComp.setBackground(org.eclipse.draw2d.ColorConstants.white); - // errComp.setLayout(new GridLayout()); - errDisplayer = new CLabel(mainComposite, SWT.FLAT); - // errDisplayer.setText("abd"); - GridData gd = new GridData(GridData.FILL_BOTH); - gd.grabExcessHorizontalSpace = true; - gd.horizontalSpan = 3; - errDisplayer.setLayoutData(gd); - - // errComp.setLayoutData(gd); - // errDisplayer.setLayoutData(gd); - // errMsgContainer.setContent(errDisplayer); - - nameText.addModifyListener(new ModifyListener() - { - // track the nameText and enable/disable the OK button accordingly - public void modifyText(ModifyEvent e) - { - categoryName = nameText.getText(); - - // name is in the invalid List - if (invalidNames != null) - { - if (invalidNames.contains(categoryName.trim())) - { - isCategoryNameValid = false; - - getButton(IDialogConstants.OK_ID).setEnabled(false); - errDisplayer.setText("The name is already being used."); - errDisplayer.setImage(XSDEditorPlugin.getXSDImage("icons/error_st_obj.gif")); - return; - } - } - // name is empty string - if (categoryName.equals("")) - { - isCategoryNameValid = false; - - getButton(IDialogConstants.OK_ID).setEnabled(false); - errDisplayer.setText(""); - errDisplayer.setImage(null); - return; - } - - /* - * Enable the Ok button if the location field AND the name field are not - * empty - */ - if (!categoryName.equals("")) - { - isCategoryNameValid = true; - errDisplayer.setText(""); - errDisplayer.setImage(null); - } - if (!appInfoSchemaLocation.equals("")) - { - getButton(IDialogConstants.OK_ID).setEnabled(true); - } - } - }); - - return parent; - } - - protected void okPressed() - { - super.okPressed(); - } - - protected class BrowseInWorkspaceAction extends Action - { - private static final String XSD_FILE_EXTENSION = ".xsd"; - - public BrowseInWorkspaceAction() - { - super("Workspace"); - } - - public void run() - { - SelectSingleFileDialog dialog = new SelectSingleFileDialog(getShell(), null, true); - dialog.addFilterExtensions(new String[] { XSD_FILE_EXTENSION }); - dialog.create(); - dialog.setTitle("Select XSD file"); - dialog.setMessage("Choose an XSD file containing schema for your extensible components"); - - if (dialog.open() == Window.OK) - { - IFile appInfoSchemaFile = dialog.getFile(); - if (appInfoSchemaFile != null) - { - // remove leading slash from the value to avoid the - // whole leading slash ambiguity problem - String uri = appInfoSchemaFile.getFullPath().toString(); - while (uri.startsWith("/") || uri.startsWith("\\")) { //$NON-NLS-1$ //$NON-NLS-2$ - uri = uri.substring(1); - } - appInfoSchemaLocation = uri.toString(); - - appInfoSchemaLocation = "file://" + Platform.getLocation().toString() + "/" + appInfoSchemaLocation; - // TODO... be careful how we construct the location - // UNIX related issues here - - schemaDisplayer.setImage(XSDEditorPlugin.getXSDImage("icons/XSDFile.gif")); - schemaDisplayer.setText(uri); - - // Enable the OK button if we should.. - if (isCategoryNameValid) - { - getButton(IDialogConstants.OK_ID).setEnabled(true); - errDisplayer.setText(""); - errDisplayer.setImage(null); - } - } - } - } - } - - protected class BrowseCatalogAction extends Action - { - public BrowseCatalogAction() - { - super("Catalog"); - } - - public void run() - { - SelectFromCatalogDialog dialog = new SelectFromCatalogDialog(getShell()); - // dialog.open(); - if (dialog.open() == Window.OK) - { - appInfoSchemaLocation = dialog.getCurrentSelectionLocation(); - - schemaDisplayer.setImage(XSDEditorPlugin.getXSDImage("icons/xmlcatalog_obj.gif")); - schemaDisplayer.setText(dialog.getCurrentSelectionNamespace()); - - // Enable the OK button if we should.. - if (isCategoryNameValid && !appInfoSchemaLocation.equals("")) - { - getButton(IDialogConstants.OK_ID).setEnabled(true); - errDisplayer.setText(""); - errDisplayer.setImage(null); - } - } - } - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionDetailsContentProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionDetailsContentProvider.java deleted file mode 100644 index b4568b359f..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionDetailsContentProvider.java +++ /dev/null @@ -1,105 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import java.util.Collection; -import java.util.HashMap; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNamedNodeMap; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil; -import org.w3c.dom.Attr; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; - - -public class DOMExtensionDetailsContentProvider implements ExtensionDetailsContentProvider -{ - private static Object[] EMPTY_ARRAY = {}; - private static String[] EMPTY_STRING_ARRAY = {}; - public Object[] getItems(Object input) - { - HashMap resultMap = new HashMap(); - if (input instanceof Element) - { - Element element = (Element)input; - NamedNodeMap attributes = element.getAttributes(); - for (int i = 0; i < attributes.getLength(); i++) - { - Attr attr = (Attr)attributes.item(i); - if (!"xmlns".equals(attr.getName()) && !"xmlns".equals(attr.getPrefix())) - { - resultMap.put(attr.getName(), new DOMExtensionItem(attr)); - } - } - ModelQuery modelQuery = ModelQueryUtil.getModelQuery(element.getOwnerDocument()); - if (modelQuery != null) - { - CMElementDeclaration ed = modelQuery.getCMElementDeclaration(element); - if (ed != null) - { - CMNamedNodeMap attrMap = ed.getAttributes(); - if (attrMap != null) - { - int attrMapLength = attrMap.getLength(); - for (int i = 0; i < attrMapLength; i++) - { - CMAttributeDeclaration ad = (CMAttributeDeclaration) attrMap.item(i); - if (resultMap.get(ad.getNodeName()) == null) - { - resultMap.put(ad.getNodeName(), new DOMExtensionItem(element, ad)); - } - } - } - // - int contentType = ed.getContentType(); - if ((contentType == CMElementDeclaration.PCDATA || - contentType == CMElementDeclaration.PCDATA) && - ed.getDataType() != null) - { - resultMap.put("text()", new DOMExtensionItem(element, ed)); - } - } - } - Collection collection = resultMap.values(); - DOMExtensionItem[] items = new DOMExtensionItem[collection.size()]; - resultMap.values().toArray(items); - return items; - } - else if (input instanceof Attr) - { - Attr attr = (Attr)input; - DOMExtensionItem item = new DOMExtensionItem(attr); - DOMExtensionItem[] items = {item}; - return items; - } - return EMPTY_ARRAY; - } - - - public String getName(Object item) - { - if (item instanceof DOMExtensionItem) - { - return ((DOMExtensionItem)item).getName(); - } - return ""; - } - - public String getValue(Object item) - { - if (item instanceof DOMExtensionItem) - { - return ((DOMExtensionItem)item).getValue(); - } - return ""; - } - - public String[] getPossibleValues(Object item) - { - if (item instanceof DOMExtensionItem) - { - return ((DOMExtensionItem)item).getPossibleValues(); - } - return EMPTY_STRING_ARRAY; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItem.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItem.java deleted file mode 100644 index 2f8be97d21..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItem.java +++ /dev/null @@ -1,127 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import org.eclipse.gef.commands.Command; -import org.eclipse.wst.xml.core.internal.contentmodel.CMAttributeDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMDataType; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.CMNode; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.modelquery.ModelQueryUtil; -import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateAttributeValueCommand; -import org.w3c.dom.Attr; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -class DOMExtensionItem -{ - Node node; - Element parent; - CMNode cmNode; - - DOMExtensionItem(Node node) - { - this.node = node; - } - - DOMExtensionItem(Element parent, CMElementDeclaration ed) - { - this.parent = parent; - this.cmNode = ed; - } - - DOMExtensionItem(Element parent, CMAttributeDeclaration ad) - { - this.parent = parent; - this.cmNode = ad; - } - - public String getName() - { - if (node instanceof Attr) - { - Attr attr = (Attr)node; - return attr.getName(); - } - else if (cmNode instanceof CMAttributeDeclaration) - { - CMAttributeDeclaration ad = (CMAttributeDeclaration)cmNode; - return ad.getNodeName() + "*"; - } - else if (cmNode instanceof CMDataType) - { - return "text()"; - } - return ""; - } - - public String getValue() - { - if (node instanceof Attr) - { - Attr attr = (Attr)node; - return attr.getValue(); - } - return ""; - } - - public String[] getPossibleValues() - { - String[] result = {}; - if (node instanceof Attr) - { - Attr attr = (Attr)node; - ModelQuery modelQuery = ModelQueryUtil.getModelQuery(attr.getOwnerDocument()); - if (modelQuery != null) - { - CMAttributeDeclaration ad = modelQuery.getCMAttributeDeclaration(attr); - if (ad != null) - { - result = modelQuery.getPossibleDataTypeValues(attr.getOwnerElement(), ad); - } - } - } - else if (parent != null) - { - if (cmNode == null || cmNode instanceof CMDataType) - { - // TODO - // - } - else if (cmNode instanceof CMAttributeDeclaration) - { - CMAttributeDeclaration ad = (CMAttributeDeclaration)cmNode; - ModelQuery modelQuery = ModelQueryUtil.getModelQuery(parent.getOwnerDocument()); - if (modelQuery != null) - { - result = modelQuery.getPossibleDataTypeValues(parent, ad); - } - } - } - return result; - } - - public Command getUpdateValueCommand(String newValue) - { - if (node instanceof Attr) - { - Attr attr = (Attr)node; - return new UpdateAttributeValueCommand(attr.getOwnerElement(), attr.getNodeName(), newValue); - } - else if (parent != null) - { - if (cmNode == null || cmNode instanceof CMDataType) - { - // in this case we need to update the parent's text - // - } - else if (cmNode instanceof CMAttributeDeclaration) - { - // TODO (cs) add namespace prefix to attribute name if req'd - // - CMAttributeDeclaration ad = (CMAttributeDeclaration)cmNode; - return new UpdateAttributeValueCommand(parent, ad.getAttrName(), newValue); - } - } - return null; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItemEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItemEditManager.java deleted file mode 100644 index 6c771e1c65..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItemEditManager.java +++ /dev/null @@ -1,80 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import org.eclipse.gef.commands.Command; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.widgets.Button; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Text; -import org.eclipse.swt.widgets.Widget; - -public class DOMExtensionItemEditManager implements ExtensionItemEditManager -{ - public void handleEdit(Object item, Widget widget) - { - if (item instanceof DOMExtensionItem) - { - DOMExtensionItem extensionItem = (DOMExtensionItem)item; - String value = null; - if (widget instanceof Text) - { - Text text = (Text)widget; - value = text.getText(); - } - else if (widget instanceof CCombo) - { - CCombo combo = (CCombo)widget; - int index = combo.getSelectionIndex(); - if (index != -1) - { - value = combo.getItem(index); - } - } - if (value != null) - { - Command command = extensionItem.getUpdateValueCommand(value); - if (command != null) - { - // TODO (cs) add command stack handling stuff - command.execute(); - } - } - } - } - - public Control createCustomButtonControl(Composite composite, Object item) - { - Button button = new Button(composite, SWT.NONE); - button.setText("..."); - return button; - } - - public Control createCustomTextControl(Composite composite, Object item) - { - return null; - } - - public String getButtonControlStyle(Object object) - { - /* - DOMExtensionItem item = (DOMExtensionItem)object; - if (item.getName().startsWith("n")) - { - return ExtensionItemEditManager.STYLE_CUSTOM; - }*/ - return ExtensionItemEditManager.STYLE_NONE; - } - - public String getTextControlStyle(Object object) - { - DOMExtensionItem item = (DOMExtensionItem)object; - String[] values = item.getPossibleValues(); - - if (values != null && values.length > 1) - { - return ExtensionItemEditManager.STYLE_COMBO; - } - return ExtensionItemEditManager.STYLE_TEXT; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItemMenuListener.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItemMenuListener.java deleted file mode 100644 index 1c8bcf55d9..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionItemMenuListener.java +++ /dev/null @@ -1,117 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import java.util.ArrayList; -import java.util.List; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IMenuListener; -import org.eclipse.jface.action.IMenuManager; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.TreeViewer; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel; -import org.eclipse.wst.xml.core.internal.contentmodel.CMElementDeclaration; -import org.eclipse.wst.xml.core.internal.contentmodel.modelquery.ModelQuery; -import org.eclipse.wst.xml.core.internal.document.ElementImpl; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMDocument; -import org.eclipse.wst.xml.ui.internal.contentoutline.XMLNodeActionManager; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -public class DOMExtensionItemMenuListener implements IMenuListener -{ - TreeViewer treeViewer; - - public DOMExtensionItemMenuListener(TreeViewer treeViewer) - { - this.treeViewer = treeViewer; - } - - public void menuAboutToShow(IMenuManager manager) - { - manager.removeAll(); - ISelection selection = treeViewer.getSelection(); - if (selection instanceof IStructuredSelection) - { - IStructuredSelection structuredSelection = (IStructuredSelection) selection; - if (structuredSelection.getFirstElement() instanceof ElementImpl) - { - ElementImpl elementImpl = (ElementImpl) structuredSelection.getFirstElement(); - IDOMDocument domDocument = (IDOMDocument) elementImpl.getOwnerDocument(); - InternalNodeActionManager actionManager = new InternalNodeActionManager(domDocument.getModel(), treeViewer); - actionManager.fillContextMenu(manager, structuredSelection); - } - } - } - - - class InternalNodeActionManager extends XMLNodeActionManager - { - public InternalNodeActionManager(IStructuredModel model, Viewer viewer) - { - super(model, viewer); - } - - public void contributeActions(IMenuManager menu, List selection) - { - //menu.add(new Action("there"){}); - try - { - int editMode = modelQuery.getEditMode(); - int ic = ModelQuery.INCLUDE_CHILD_NODES; - int vc = (editMode == ModelQuery.EDIT_MODE_CONSTRAINED_STRICT) ? ModelQuery.VALIDITY_STRICT : ModelQuery.VALIDITY_NONE; - List implicitlySelectedNodeList = null; - - if (selection.size() == 1) - { - Node node = (Node) selection.get(0); - // contribute add child actions - contributeAddChildActions(menu, node, ic, vc); - } - if (selection.size() > 0) - { - implicitlySelectedNodeList = getSelectedNodes(selection, true); - // contribute delete actions - contributeDeleteActions(menu, implicitlySelectedNodeList, ic, vc); - } - } - catch(Exception e) - { - menu.add(new Action(e.getMessage()){}); - } - /* - if (selection.size() > 0) - { - // contribute replace actions - contributeReplaceActions(menu, implicitlySelectedNodeList, ic, vc); - }*/ - } - - protected void contributeAddChildActions(IMenuManager menu, Node node, int ic, int vc) - { - int nodeType = node.getNodeType(); - if (nodeType == Node.ELEMENT_NODE) - { - // 'Add Child...' and 'Add Attribute...' actions - // - Element element = (Element) node; - MyMenuManager newMenu = new MyMenuManager("New"){ - public boolean isVisible() { return true; } - };//$NON-NLS-1$ - newMenu.setVisible(true); - menu.add(newMenu); - - CMElementDeclaration ed = modelQuery.getCMElementDeclaration(element); - if (ed != null) - { - List modelQueryActionList = new ArrayList(); - // add insert child node actions - // - modelQueryActionList = new ArrayList(); - modelQuery.getInsertActions(element, ed, -1, ic, vc, modelQueryActionList); - addActionHelper(newMenu, modelQueryActionList); - } - } - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionTreeContentProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionTreeContentProvider.java deleted file mode 100644 index d76c5f3b77..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionTreeContentProvider.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import java.util.ArrayList; -import java.util.Collections; -import org.eclipse.jface.viewers.ITreeContentProvider; -import org.eclipse.jface.viewers.Viewer; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -public class DOMExtensionTreeContentProvider implements ITreeContentProvider -{ - protected String facet; - public void inputChanged(Viewer viewer, Object oldInput, Object newInput) - { - } - - - public Object[] getChildren(Object parentElement) - { - if (parentElement instanceof Element) - { - Element element = (Element)parentElement; - ArrayList list = new ArrayList(); - for (Node node = element.getFirstChild(); node != null; node = node.getNextSibling()) - { - if (node.getNodeType() == Node.ELEMENT_NODE) - { - list.add(node); - } - } - return list.toArray(); - } - return Collections.EMPTY_LIST.toArray(); - } - - public boolean hasChildren(Object element) - { - Object[] children = getChildren(element); - return children.length > 0; - } - - public Object getParent(Object element) - { - return null; - } - - public java.lang.Object[] getElements(java.lang.Object inputElement) - { - return getChildren(inputElement); - } - - public void dispose() - { - } -}
\ No newline at end of file diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionTreeLabelProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionTreeLabelProvider.java deleted file mode 100644 index 3f48f929c6..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/DOMExtensionTreeLabelProvider.java +++ /dev/null @@ -1,51 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import org.eclipse.jface.viewers.ILabelProvider; -import org.eclipse.jface.viewers.LabelProvider; -import org.eclipse.swt.graphics.Image; -import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin; -import org.w3c.dom.Attr; -import org.w3c.dom.Element; - -public class DOMExtensionTreeLabelProvider extends LabelProvider -{ - protected static final Image DEFAULT_ELEMENT_ICON = XSDEditorPlugin.getXSDImage("icons/XSDElement.gif"); - protected static final Image DEFAULT_ATTR_ICON = XSDEditorPlugin.getXSDImage("icons/XSDAttribute.gif"); - - public DOMExtensionTreeLabelProvider() - { - } - - public Image getImage(Object element) - { - ExtensionsSchemasRegistry registry = XSDEditorPlugin.getDefault().getExtensionsSchemasRegistry(); - if (element instanceof Element) - { - Element domElement = (Element) element; - ILabelProvider lp = registry.getLabelProvider(domElement); - if (lp != null) - { - Image img = lp.getImage(domElement); - if (img != null) - return img; - } - return DEFAULT_ELEMENT_ICON; - } - if (element instanceof Attr) - return DEFAULT_ATTR_ICON; - return null; - } - - public String getText(Object input) - { - if (input instanceof Element) - { - Element domElement = (Element) input; - return domElement.getLocalName(); - } - if ( input instanceof Attr){ - return ((Attr) input).getLocalName(); - } - return ""; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionDetailsContentProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionDetailsContentProvider.java deleted file mode 100644 index 254d105ce4..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionDetailsContentProvider.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -public interface ExtensionDetailsContentProvider -{ - Object[] getItems(Object input); - String getName(Object item); - String getValue(Object item); - String[] getPossibleValues(Object item); -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionDetailsViewer.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionDetailsViewer.java deleted file mode 100644 index 50568b4727..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionDetailsViewer.java +++ /dev/null @@ -1,183 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import org.eclipse.draw2d.ColorConstants; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.swt.SWT; -import org.eclipse.swt.custom.CCombo; -import org.eclipse.swt.events.FocusEvent; -import org.eclipse.swt.events.FocusListener; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Label; -import org.eclipse.swt.widgets.Text; -import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory; - -public class ExtensionDetailsViewer extends Viewer -{ - private final static String ITEM_DATA = "ITEM_DATA"; - Composite control; - Composite composite; - ExtensionDetailsContentProvider contentProvider; - TabbedPropertySheetWidgetFactory widgetFactory; - InternalFocusListener internalFocusListener; - ExtensionItemEditManager editManager; - - public ExtensionDetailsViewer(Composite parent, TabbedPropertySheetWidgetFactory widgetFactory) - { - this.widgetFactory = widgetFactory; - control = widgetFactory.createComposite(parent); - internalFocusListener = new InternalFocusListener(); - control.setLayout(new GridLayout()); - } - public Control getControl() - { - return control; - } - - - public Object getInput() - { - // TODO Auto-generated method stub - return null; - } - - public ISelection getSelection() - { - // TODO Auto-generated method stub - return null; - } - - public void refresh() - { - // TODO Auto-generated method stub - - } - - public void setInput(Object input) - { - // TODO (cs) add assertions - // - if (editManager == null) - return; - - if (contentProvider == null) - return; - - if (composite != null) - {/* - for (Iterator i = controlsThatWeAreListeningTo.iterator(); i.hasNext(); ) - { - Control control = (Control)i.next(); - if (control != null) - { - control.removeFocusListener(internalFocusListener); - } - } */ - composite.dispose(); - } - - composite = widgetFactory.createComposite(control); - composite.setBackground(ColorConstants.white); - GridLayout gridLayout = new GridLayout(); - gridLayout.numColumns = 3; - composite.setLayout(gridLayout); - composite.setLayoutData(new GridData(GridData.FILL_BOTH)); - - Object[] items = contentProvider.getItems(input); - - for (int i = 0; i < items.length; i++) - { - Object item = items[i]; - String name = contentProvider.getName(item); - String value = contentProvider.getValue(item); - Label label = widgetFactory.createLabel(composite, name + ":"); - label.setLayoutData(new GridData()); - - Control control = null; - String style = editManager.getTextControlStyle(item); - - if (style == ExtensionItemEditManager.STYLE_COMBO) - { - CCombo combo = widgetFactory.createCCombo(composite); - combo.setText(value); - String[] values = contentProvider.getPossibleValues(item); - for (int j = 0; j < values.length; j++) - { - combo.add(values[j]); - } - control = combo; - } - else if (style == ExtensionItemEditManager.STYLE_CUSTOM) - { - control = editManager.createCustomTextControl(composite, item); - } - else // (style == ExtensionItemEditManager.STYLE_TEXT) - { - Text text = widgetFactory.createText(composite,value); - control = text; - } - control.setData(ITEM_DATA, item); - control.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - control.addFocusListener(internalFocusListener); - - String buttongStyle = editManager.getButtonControlStyle(item); - if (buttongStyle == ExtensionItemEditManager.STYLE_CUSTOM) - { - editManager.createCustomButtonControl(composite, item); - } - else - { - Control placeHolder = new Label(composite, SWT.NONE); - placeHolder.setVisible(false); - placeHolder.setEnabled(false); - placeHolder.setLayoutData(new GridData()); - } - } - control.layout(true); - } - - public void setSelection(ISelection selection, boolean reveal) - { - // TODO Auto-generated method stub - - } - public ExtensionDetailsContentProvider getContentProvider() - { - return contentProvider; - } - public void setContentProvider(ExtensionDetailsContentProvider contentProvider) - { - this.contentProvider = contentProvider; - } - - class InternalFocusListener implements FocusListener - { - public void focusGained(FocusEvent e) - { - } - - public void focusLost(FocusEvent e) - { - if (editManager != null) - { - Object item = e.widget.getData(ITEM_DATA); - if (item != null) - { - editManager.handleEdit(item, e.widget); - } - } - } - } - - public ExtensionItemEditManager getEditManager() - { - return editManager; - } - public void setEditManager(ExtensionItemEditManager editManager) - { - this.editManager = editManager; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionItemEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionItemEditManager.java deleted file mode 100644 index 40dda9f5d7..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionItemEditManager.java +++ /dev/null @@ -1,19 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Widget; - -public interface ExtensionItemEditManager -{ - public final static String STYLE_NONE = "none"; - public final static String STYLE_TEXT = "text"; - public final static String STYLE_COMBO = "combo"; - public final static String STYLE_CUSTOM = "custom"; - - void handleEdit(Object item, Widget widget); - String getTextControlStyle(Object item); - String getButtonControlStyle(Object item); - Control createCustomTextControl(Composite composite, Object item); - Control createCustomButtonControl(Composite composite, Object item); -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionsSchemasRegistry.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionsSchemasRegistry.java deleted file mode 100644 index c917c853ed..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/ExtensionsSchemasRegistry.java +++ /dev/null @@ -1,190 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; - -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.Platform; -import org.eclipse.jface.viewers.ILabelProvider; -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.w3c.dom.Element; - -public class ExtensionsSchemasRegistry -{ - private static final String LOCATION_PREFIX = "platform:/plugin/"; - public static final String DESCRIPTION = "description"; - public static final String DISPLAYNAME = "displayName"; - public static final String NAMESPACEURI = "namespaceURI"; - public static final String XSDFILEURL = "xsdFileURL"; - public static final String LABELPROVIDER = "labelProviderClass"; - - protected String extensionId; - - HashMap propertyMap; - ArrayList nsURIProperties; - private ICatalog systemCatalog; - - public ExtensionsSchemasRegistry(String appinfo_extensionid) - { - extensionId = appinfo_extensionid; - } - - public List getAllExtensionsSchemasContribution() - { - // If we read the registry, then let's not do it again. - if (nsURIProperties != null) - { - return nsURIProperties; - } - IConfigurationElement[] asiPropertiesList = Platform.getExtensionRegistry().getConfigurationElementsFor(extensionId); - - nsURIProperties = new ArrayList(); - propertyMap = new HashMap(); - - boolean hasASIProperties = (asiPropertiesList != null) && (asiPropertiesList.length > 0); - - if (hasASIProperties) - { - for (int i = 0; i < asiPropertiesList.length; i++) - { - IConfigurationElement asiPropertiesElement = asiPropertiesList[i]; - String description = asiPropertiesElement.getAttribute(DESCRIPTION); - String displayName = asiPropertiesElement.getAttribute(DISPLAYNAME); - String namespaceURI = asiPropertiesElement.getAttribute(NAMESPACEURI); - String xsdFileURL = asiPropertiesElement.getAttribute(XSDFILEURL); - String labelProviderClass = asiPropertiesElement.getAttribute(LABELPROVIDER); - - if (displayName == null) - { - // If there is no display name, force the user - // to manually create a name. Therefore, we ignore entry without - // a display name. - continue; - } - - if (xsdFileURL == null) - { - xsdFileURL = locateFileUsingCatalog(namespaceURI); - } - - SpecificationForExtensionsSchema extensionsSchemaSpec = createEntry(); - extensionsSchemaSpec.setDescription(description); - extensionsSchemaSpec.setDisplayName(displayName); - extensionsSchemaSpec.setNamespaceURI(namespaceURI); - extensionsSchemaSpec.setDefautSchema(); - - if (labelProviderClass != null) - { - String pluginId = asiPropertiesElement.getDeclaringExtension().getContributor().getName(); - ILabelProvider labelProvider = null; - try - { - Class theClass = Platform.getBundle(pluginId).loadClass(labelProviderClass); - if (theClass != null) - { - labelProvider = (ILabelProvider) theClass.newInstance(); - if (labelProvider != null) - { - propertyMap.put(namespaceURI, labelProvider); - extensionsSchemaSpec.setLabelProvider(labelProvider); - } - } - } - catch (Exception e) - { - - } - } - String plugin = asiPropertiesElement.getDeclaringExtension().getContributor().getName(); - extensionsSchemaSpec.setLocation(LOCATION_PREFIX + plugin + "/" + xsdFileURL); - - nsURIProperties.add(extensionsSchemaSpec); - } - - } - return nsURIProperties; - } - - public ILabelProvider getLabelProvider(Element element) - { - String uri = element.getNamespaceURI(); - if (uri == null) - uri = ""; - - // Didn't retrieve the config elements yet. - if (propertyMap == null) - { - getAllExtensionsSchemasContribution(); - } - - Object object = propertyMap.get(uri); - if (object instanceof ILabelProvider) - { - return (ILabelProvider) object; - } - return null; - } - - public SpecificationForExtensionsSchema createEntry() - { - return new SpecificationForExtensionsSchema(); - } - - /** - * Returns the String location for the schema with the given namespaceURI by - * looking at the XML catalog. We look only in the plugin specified entries of - * the catalog. - * - * @param namespaceURI - * @return String representing the location of the schema. - */ - private String locateFileUsingCatalog(String namespaceURI) - { - retrieveCatalog(); - - ICatalogEntry[] entries = systemCatalog.getCatalogEntries(); - for (int i = 0; i < entries.length; i++) - { - if (entries[i].getKey().equals(namespaceURI)) - return entries[i].getURI(); - } - - return null; - } - - private void retrieveCatalog() - { - if (systemCatalog != null) - return; - - 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.SYSTEM_CATALOG_ID.equals(referencedCatalog.getId())) - { - systemCatalog = referencedCatalog; - } - } - } - } - -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/SelectFromCatalogDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/SelectFromCatalogDialog.java deleted file mode 100644 index 1f2737a523..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/SelectFromCatalogDialog.java +++ /dev/null @@ -1,212 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.viewers.ISelection; -import org.eclipse.jface.viewers.ISelectionChangedListener; -import org.eclipse.jface.viewers.IStructuredSelection; -import org.eclipse.jface.viewers.SelectionChangedEvent; -import org.eclipse.jface.viewers.Viewer; -import org.eclipse.jface.viewers.ViewerFilter; -import org.eclipse.swt.SWT; -import org.eclipse.swt.layout.GridData; -import org.eclipse.swt.layout.GridLayout; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Group; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.wst.xml.core.internal.XMLCorePlugin; -import org.eclipse.wst.xml.core.internal.catalog.CatalogSet; -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.ui.internal.catalog.XMLCatalogEntriesView; -import org.eclipse.wst.xml.ui.internal.catalog.XMLCatalogEntryDetailsView; -import org.eclipse.wst.xml.ui.internal.catalog.XMLCatalogMessages; -import org.eclipse.wst.xml.ui.internal.catalog.XMLCatalogTreeViewer; - -public class SelectFromCatalogDialog extends Dialog -{ - - private ICatalog workingUserCatalog; - private ICatalog userCatalog; - private ICatalog defaultCatalog; - private XMLCatalogEntriesView catalogEntriesView; - private ICatalog systemCatalog; - - private String currentSelectionLocation; - private String currentSelectionNamespace; - - public SelectFromCatalogDialog(Shell parentShell) - { - super(parentShell); - - 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.SYSTEM_CATALOG_ID.equals(referencedCatalog.getId())) - { - systemCatalog = referencedCatalog; - } - else if (XMLCorePlugin.USER_CATALOG_ID.equals(referencedCatalog.getId())) - { - userCatalog = referencedCatalog; - } - } - } - } - - protected Control createDialogArea(Composite parent) - { - // we create a working copy of the 'User Settings' for the Catalog - // that we can modify - CatalogSet tempCatalogSet = new CatalogSet(); - workingUserCatalog = tempCatalogSet.lookupOrCreateCatalog("working", ""); //$NON-NLS-1$ //$NON-NLS-2$ - - // TODO: add entries from the nested catalogs as well - workingUserCatalog.addEntriesFromCatalog(userCatalog); - - Composite composite = new Composite(parent, SWT.NULL); - composite.setLayout(new GridLayout()); - GridData gridData = new GridData(GridData.FILL_BOTH); - gridData.heightHint = 500; - composite.setLayoutData(gridData); - createCatalogEntriesView(composite); - createCatalogDetailsView(composite); - - return composite; - } - - protected void createCatalogEntriesView(Composite parent) - { - Group group = new Group(parent, SWT.NONE); - group.setLayout(new GridLayout()); - GridData gridData = new GridData(GridData.FILL_BOTH); - gridData.widthHint = 370; - group.setLayoutData(gridData); - group.setText(XMLCatalogMessages.UI_LABEL_USER_ENTRIES); - group.setToolTipText(XMLCatalogMessages.UI_LABEL_USER_ENTRIES_TOOL_TIP); - - /* - * create a subclass of XMLCatalogEntriesView which suppresses - the - * creation of 'Add', 'Edit', 'Delete' buttons - any method involving the - * above buttons - */ - catalogEntriesView = new XMLCatalogEntriesView(group, workingUserCatalog, systemCatalog) - { - protected void createButtons(Composite parent) - { - } - - protected void updateWidgetEnabledState() - { - } - - }; - - // Only XML Schema entry is selectable - catalogEntriesView.setLayoutData(gridData); - XMLCatalogTreeViewer catalogTreeViewer = ((XMLCatalogTreeViewer) catalogEntriesView.getViewer()); - catalogTreeViewer.resetFilters(); - - catalogTreeViewer.addFilter(new XMLCatalogTableViewerFilter(new String[] { ".xsd" })); - } - - // Bug in the filter of the XML plugin, have to give a correct version here - // TODO: Waiting for the fix to be commited to XML plugin and - // be used by constellation - private class XMLCatalogTableViewerFilter extends ViewerFilter - { - private static final String W3_XMLSCHEMA_NAMESPACE = "http://www.w3.org/2001/"; - protected String[] extensions; - - public XMLCatalogTableViewerFilter(String[] extensions1) - { - this.extensions = extensions1; - } - - public boolean isFilterProperty(Object element, Object property) - { - return false; - } - - public boolean select(Viewer viewer, Object parent, Object element) - { - boolean result = false; - if (element instanceof ICatalogEntry) - { - ICatalogEntry catalogEntry = (ICatalogEntry) element; - for (int i = 0; i < extensions.length; i++) - { - // if the extension is correct and the namespace indicates - // that this entry is not the W3 XML Schema - if (catalogEntry.getURI().endsWith(extensions[i]) && !catalogEntry.getKey().startsWith(W3_XMLSCHEMA_NAMESPACE)) - { - result = true; - break; - } - } - } - else if (element.equals(XMLCatalogTreeViewer.PLUGIN_SPECIFIED_ENTRIES_OBJECT) || element.equals(XMLCatalogTreeViewer.USER_SPECIFIED_ENTRIES_OBJECT)) - { - return true; - } - return result; - } - } - - protected void createCatalogDetailsView(Composite parent) - { - Group detailsGroup = new Group(parent, SWT.NONE); - detailsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); - detailsGroup.setLayout(new GridLayout()); - detailsGroup.setText(XMLCatalogMessages.UI_LABEL_DETAILS); - final XMLCatalogEntryDetailsView detailsView = new XMLCatalogEntryDetailsView(detailsGroup); - ISelectionChangedListener listener = new ISelectionChangedListener() - { - public void selectionChanged(SelectionChangedEvent event) - { - ISelection selection = event.getSelection(); - Object selectedObject = (selection instanceof IStructuredSelection) ? ((IStructuredSelection) selection).getFirstElement() : null; - if (selectedObject instanceof ICatalogEntry) - { - ICatalogEntry entry = (ICatalogEntry) selectedObject; - detailsView.setCatalogElement(entry); - currentSelectionLocation = entry.getURI(); - currentSelectionNamespace = entry.getKey(); - } - else - { - detailsView.setCatalogElement((ICatalogEntry) null); - currentSelectionLocation = ""; - currentSelectionNamespace = ""; - } - } - }; - catalogEntriesView.getViewer().addSelectionChangedListener(listener); - } - - public String getCurrentSelectionLocation() - { - return currentSelectionLocation; - } - - public String getCurrentSelectionNamespace() - { - return currentSelectionNamespace; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/SpecificationForExtensionsSchema.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/SpecificationForExtensionsSchema.java deleted file mode 100644 index cd8ee9a958..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/SpecificationForExtensionsSchema.java +++ /dev/null @@ -1,114 +0,0 @@ -/******************************************************************************* - * Copyright (c) 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 - *******************************************************************************/ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import org.eclipse.jface.viewers.ILabelProvider; - -public class SpecificationForExtensionsSchema -{ - private String description; - private String displayName; - private String namespaceURI; - private String location; - private ILabelProvider labelProvider; - private boolean isDefaultSchema = false; - - public SpecificationForExtensionsSchema() - { - super(); - } - - /** - * @return Returns the description. - */ - public String getDescription() - { - return description; - } - - /** - * @param description - * The description to set. - */ - public void setDescription(String description) - { - this.description = description; - } - - /** - * @return Returns the displayName. - */ - public String getDisplayName() - { - return displayName; - } - - /** - * @param name - * The displayName to set. - */ - public void setDisplayName(String displayName) - { - this.displayName = displayName; - } - - /** - * @return Returns the namespaceURI. - */ - public String getNamespaceURI() - { - return namespaceURI; - } - - /** - * @param namespaceURI - * The namespaceURI to set. - */ - public void setNamespaceURI(String namespaceURI) - { - this.namespaceURI = namespaceURI; - } - - /** - * @return Returns the location of the xsd file. - */ - public String getLocation() - { - return location; - } - - /** - * @param location - * The location to be set - */ - public void setLocation(String location) - { - this.location = location; - } - - public ILabelProvider getLabelProvider() - { - return labelProvider; - } - - public void setLabelProvider(ILabelProvider labelProvider) - { - this.labelProvider = labelProvider; - } - - public boolean isDefautSchema(){ - return isDefaultSchema ; - } - - public void setDefautSchema(){ - isDefaultSchema = true; - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/XSDExtensionTreeContentProvider.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/XSDExtensionTreeContentProvider.java deleted file mode 100644 index 981da6985c..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/appinfo/XSDExtensionTreeContentProvider.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.properties.sections.appinfo; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import org.eclipse.wst.xsd.ui.internal.common.util.XSDCommonUIUtils; -import org.eclipse.xsd.XSDAnnotation; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.util.XSDConstants; -import org.w3c.dom.Element; -import org.w3c.dom.NamedNodeMap; -import org.w3c.dom.Node; -import org.w3c.dom.NodeList; - -public class XSDExtensionTreeContentProvider extends DOMExtensionTreeContentProvider -{ - public Object[] getElements(Object inputElement) - { - if (inputElement instanceof XSDConcreteComponent) - { - XSDConcreteComponent component = (XSDConcreteComponent) inputElement; - List elementsAndAttributes = new ArrayList(); - /** Construct elements list */ - XSDAnnotation xsdAnnotation = XSDCommonUIUtils.getInputXSDAnnotation(component, false); - if (xsdAnnotation != null) - { - List appInfoList = xsdAnnotation.getApplicationInformation(); - Element appInfoElement = null; - if (appInfoList.size() > 0) - { - appInfoElement = (Element) appInfoList.get(0); - } - if (appInfoElement != null) - { - for (Iterator it = appInfoList.iterator(); it.hasNext();) - { - Object obj = it.next(); - if (obj instanceof Element) - { - Element appInfo = (Element) obj; - NodeList nodeList = appInfo.getChildNodes(); - int length = nodeList.getLength(); - for (int i = 0; i < length; i++) - { - Node node = nodeList.item(i); - if (node instanceof Element) - { - elementsAndAttributes.add(node); - } - } - } - } - } - } - /** Construct attributes list */ - NamedNodeMap attributes = component.getElement().getAttributes(); - if (attributes != null) - { - // String defaultNamespace = - // (String)component.getSchema().getQNamePrefixToNamespaceMap().get(""); - int length = attributes.getLength(); - for (int i = 0; i < length; i++) - { - Node oneAttribute = attributes.item(i); - if (!isXmlnsAttribute(oneAttribute)) - { - String namespace = oneAttribute.getNamespaceURI(); - boolean isExtension = true; - if (namespace == null && oneAttribute.getPrefix() == null) - { - isExtension = false; - } - else if (!XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(namespace)) - { - isExtension = true; - } - if (isExtension) - { - elementsAndAttributes.add(oneAttribute); - } - } - } - } - return elementsAndAttributes.toArray(); - } - return Collections.EMPTY_LIST.toArray(); - } - - private static boolean isXmlnsAttribute(Node attribute) - { - String prefix = attribute.getPrefix(); - if (prefix != null) - { - // this handle the xmlns:foo="blah" case - return "xmlns".equals(prefix); - } - else - { - // this handles the xmlns="blah" case - return "xmlns".equals(attribute.getNodeName()); - } - } -} diff --git a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/util/XSDCommonUIUtils.java b/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/util/XSDCommonUIUtils.java deleted file mode 100644 index 6c3be88125..0000000000 --- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/util/XSDCommonUIUtils.java +++ /dev/null @@ -1,471 +0,0 @@ -package org.eclipse.wst.xsd.ui.internal.common.util; - -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -import org.eclipse.emf.common.util.EList; -import org.eclipse.emf.ecore.EObject; -import org.eclipse.wst.sse.core.internal.format.IStructuredFormatProcessor; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel; -import org.eclipse.wst.xml.core.internal.provisional.document.IDOMNode; -import org.eclipse.wst.xml.core.internal.provisional.format.FormatProcessorXML; -import org.eclipse.xsd.XSDAnnotation; -import org.eclipse.xsd.XSDAttributeDeclaration; -import org.eclipse.xsd.XSDAttributeGroupDefinition; -import org.eclipse.xsd.XSDAttributeUse; -import org.eclipse.xsd.XSDComplexTypeContent; -import org.eclipse.xsd.XSDComplexTypeDefinition; -import org.eclipse.xsd.XSDConcreteComponent; -import org.eclipse.xsd.XSDElementDeclaration; -import org.eclipse.xsd.XSDFacet; -import org.eclipse.xsd.XSDFactory; -import org.eclipse.xsd.XSDFeature; -import org.eclipse.xsd.XSDIdentityConstraintDefinition; -import org.eclipse.xsd.XSDImport; -import org.eclipse.xsd.XSDInclude; -import org.eclipse.xsd.XSDModelGroup; -import org.eclipse.xsd.XSDModelGroupDefinition; -import org.eclipse.xsd.XSDNamedComponent; -import org.eclipse.xsd.XSDNotationDeclaration; -import org.eclipse.xsd.XSDParticle; -import org.eclipse.xsd.XSDRedefine; -import org.eclipse.xsd.XSDSchema; -import org.eclipse.xsd.XSDSimpleTypeDefinition; -import org.eclipse.xsd.XSDTypeDefinition; -import org.eclipse.xsd.XSDWildcard; -import org.eclipse.xsd.XSDXPathDefinition; -import org.eclipse.xsd.util.XSDConstants; -import org.eclipse.xsd.util.XSDUtil; -import org.w3c.dom.Element; -import org.w3c.dom.Node; - -public class XSDCommonUIUtils -{ - public XSDCommonUIUtils() - { - super(); - } - - public static XSDAnnotation getInputXSDAnnotation(XSDConcreteComponent input, boolean createIfNotExist) - { - XSDAnnotation xsdAnnotation = null; - XSDFactory factory = XSDFactory.eINSTANCE; - if (input instanceof XSDAttributeDeclaration) - { - XSDAttributeDeclaration xsdComp = (XSDAttributeDeclaration) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDAttributeGroupDefinition) - { - XSDAttributeGroupDefinition xsdComp = (XSDAttributeGroupDefinition) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDElementDeclaration) - { - XSDElementDeclaration xsdComp = (XSDElementDeclaration) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDNotationDeclaration) - { - XSDNotationDeclaration xsdComp = (XSDNotationDeclaration) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDXPathDefinition) - { - XSDXPathDefinition xsdComp = (XSDXPathDefinition) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDModelGroup) - { - XSDModelGroup xsdComp = (XSDModelGroup) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDModelGroupDefinition) - { - XSDModelGroupDefinition xsdComp = (XSDModelGroupDefinition) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDIdentityConstraintDefinition) - { - XSDIdentityConstraintDefinition xsdComp = (XSDIdentityConstraintDefinition) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDWildcard) - { - XSDWildcard xsdComp = (XSDWildcard) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDSchema) - { - XSDSchema xsdComp = (XSDSchema) input; - List list = xsdComp.getAnnotations(); - if (list.size() > 0) - { - xsdAnnotation = (XSDAnnotation) list.get(0); - } - else - { - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - if (xsdComp.getContents() != null) - { - xsdComp.getContents().add(0, xsdAnnotation); - } - } - } - return xsdAnnotation; - } - else if (input instanceof XSDFacet) - { - XSDFacet xsdComp = (XSDFacet) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDTypeDefinition) - { - XSDTypeDefinition xsdComp = (XSDTypeDefinition) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDInclude) - { - XSDInclude xsdComp = (XSDInclude) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDImport) - { - XSDImport xsdComp = (XSDImport) input; - xsdAnnotation = xsdComp.getAnnotation(); - if (createIfNotExist && xsdAnnotation == null) - { - xsdAnnotation = factory.createXSDAnnotation(); - xsdComp.setAnnotation(xsdAnnotation); - } - } - else if (input instanceof XSDRedefine) - { - XSDRedefine xsdComp = (XSDRedefine) input; - List list = xsdComp.getAnnotations(); - if (list.size() > 0) - { - xsdAnnotation = (XSDAnnotation) list.get(0); - } - else - { - if (createIfNotExist && xsdAnnotation == null) - { - // ? - } - } - return xsdAnnotation; - } - else if (input instanceof XSDAnnotation) - { - xsdAnnotation = (XSDAnnotation) input; - } - - if (createIfNotExist) - { - formatAnnotation(xsdAnnotation); - } - - return xsdAnnotation; - } - - private static void formatAnnotation(XSDAnnotation annotation) - { - Element element = annotation.getElement(); - formatChild(element); - } - - public static void formatChild(Node child) - { - if (child instanceof IDOMNode) - { - IDOMModel model = ((IDOMNode) child).getModel(); - try - { - // tell the model that we are about to make a big model change - model.aboutToChangeModel(); - - IStructuredFormatProcessor formatProcessor = new FormatProcessorXML(); - formatProcessor.formatNode(child); - } - finally - { - // tell the model that we are done with the big model change - model.changedModel(); - } - } - } - - public static String createUniqueElementName(String prefix, List elements) - { - ArrayList usedNames = new ArrayList(); - for (Iterator i = elements.iterator(); i.hasNext();) - { - usedNames.add(getDisplayName((XSDNamedComponent) i.next())); - } - - int i = 1; - String testName = prefix + i++; - while (usedNames.contains(testName)) - { - testName = prefix + i++; - } - return testName; - } - - public static String getDisplayName(XSDNamedComponent component) - { - if (component instanceof XSDTypeDefinition) - return getDisplayNameFromXSDType((XSDTypeDefinition) component); - - if (component instanceof XSDFeature) - { - XSDFeature feature = (XSDFeature) component; - if (feature.getName() != null) - return feature.getName(); - else if (feature.getResolvedFeature() != null && feature.getResolvedFeature().getName() != null) - return feature.getResolvedFeature().getName(); - } - - return component.getName(); - - } - - public static String getDisplayNameFromXSDType(XSDTypeDefinition type) - { - return getDisplayNameFromXSDType(type, true); - } - - public static String getDisplayNameFromXSDType(XSDTypeDefinition type, boolean returnPrimitiveParents) - { - if (type == null) - return null; - - if (type.getName() == null || type.getName().length() == 0) - { - if (returnPrimitiveParents && isPrimitiveType(type)) - { - return getDisplayNameFromXSDType(type.getBaseType()); - } - - EObject container = type.eContainer(); - - while (container != null) - { - if (container instanceof XSDNamedComponent && ((XSDNamedComponent) container).getName() != null) - { - return ((XSDNamedComponent) container).getName(); - } - container = container.eContainer(); - } - return null; - } - else - return type.getName(); - } - - public static boolean isPrimitiveType(XSDTypeDefinition type) - { - if (type instanceof XSDComplexTypeDefinition) - return false; - - XSDTypeDefinition baseType = null; - if (type != null) - { - baseType = type.getBaseType(); - XSDTypeDefinition origType = baseType; // KC: although invalid, we need to - // prevent cycles and to avoid an - // infinite loop - while (baseType != null && !XSDUtil.isAnySimpleType(baseType) && !XSDUtil.isAnyType(baseType) && origType != baseType) - { - type = baseType; - baseType = type.getBaseType(); - } - baseType = type; - } - else - { - return false; - } - - return (XSDConstants.SCHEMA_FOR_SCHEMA_URI_2001.equals(baseType.getTargetNamespace())); - } - - public static XSDSimpleTypeDefinition getAnonymousSimpleType(XSDFeature input, XSDSimpleTypeDefinition xsdSimpleTypeDefinition) - { - XSDSimpleTypeDefinition anonymousSimpleType = null; - XSDTypeDefinition localType = null; - - if (input instanceof XSDElementDeclaration) - { - localType = ((XSDElementDeclaration) input).getAnonymousTypeDefinition(); - } - else if (input instanceof XSDAttributeDeclaration) - { - localType = ((XSDAttributeDeclaration) input).getAnonymousTypeDefinition(); - } - - if (localType instanceof XSDSimpleTypeDefinition) - { - anonymousSimpleType = (XSDSimpleTypeDefinition) localType; - } - return anonymousSimpleType; - } - - public static List getChildElements(XSDModelGroup group) - { - List children = new ArrayList(); - if (group == null) return children; - for (Iterator i = group.getContents().iterator(); i.hasNext();) - { - XSDParticle next = (XSDParticle) i.next(); - if (next.getContent() instanceof XSDFeature) - { - children.add(next.getContent()); - } - else if (next.getTerm() instanceof XSDModelGroup) - { - children.addAll(getChildElements((XSDModelGroup) next.getTerm())); - } - } - return children; - } - - public static List getAllAttributes(XSDComplexTypeDefinition xsdComplexType) - { - List attributes = getChildElements(xsdComplexType); - attributes.addAll(getChildAttributes(xsdComplexType)); - - return attributes; - } - - public static List getInheritedAttributes(XSDComplexTypeDefinition ct) - { - List attrs = new ArrayList(); - XSDTypeDefinition parent = ct.getBaseTypeDefinition(); - if (parent != null && parent instanceof XSDComplexTypeDefinition && ct.isSetDerivationMethod()) - { - attrs.addAll(getAllAttributes((XSDComplexTypeDefinition) parent)); - attrs.addAll(getInheritedAttributes((XSDComplexTypeDefinition) parent)); - } - - return attrs; - } - - public static List getChildElements(XSDComplexTypeDefinition ct) - { - return getChildElements(getModelGroup(ct)); - } - - public static XSDModelGroup getModelGroup(XSDComplexTypeDefinition cType) - { - XSDParticle particle = cType.getComplexType(); - - if (particle == null || particle.eContainer() != cType) - return null; - - Object particleContent = particle.getContent(); - XSDModelGroup group = null; - - if (particleContent instanceof XSDModelGroupDefinition) - group = ((XSDModelGroupDefinition) particleContent).getResolvedModelGroupDefinition().getModelGroup(); - else if (particleContent instanceof XSDModelGroup) - group = (XSDModelGroup) particleContent; - - if (group == null) - return null; - - if (group.getContents().isEmpty() || group.eResource() != cType.eResource()) - { - XSDComplexTypeContent content = cType.getContent(); - if (content instanceof XSDParticle) - group = (XSDModelGroup) ((XSDParticle) content).getContent(); - } - - return group; - } - - public static List getChildAttributes(XSDComplexTypeDefinition ct) - { - EList attrContents = ct.getAttributeContents(); - List attrs = new ArrayList(); - for (int i = 0; i < attrContents.size(); i++) - { - Object next = attrContents.get(i); - - if (next instanceof XSDAttributeUse) - { - attrs.add(((XSDAttributeUse) next).getContent().getResolvedAttributeDeclaration()); - } - else if (next instanceof XSDAttributeGroupDefinition) - { - //XSDAttributeGroupDefinition attrGroup = (XSDAttributeGroupDefinition) next; - } - } - return attrs; - } - -} |