[134333] Add newElementDialog and hook it with other components.
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/XSDElementReferenceEditManager.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/XSDElementReferenceEditManager.java index 105f206..a5fe714 100644 --- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/XSDElementReferenceEditManager.java +++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/XSDElementReferenceEditManager.java
@@ -10,6 +10,7 @@ import org.eclipse.wst.common.ui.internal.search.dialogs.IComponentDescriptionProvider; import org.eclipse.wst.xsd.adt.edit.ComponentReferenceEditManager; import org.eclipse.wst.xsd.adt.edit.IComponentDialog; +import org.eclipse.wst.xsd.editor.internal.dialogs.NewElementDialog; import org.eclipse.wst.xsd.editor.internal.search.XSDSearchListDialogDelegate; import org.eclipse.wst.xsd.ui.common.commands.AddXSDElementCommand; import org.eclipse.wst.xsd.ui.common.commands.UpdateElementReferenceAndManageDirectivesCommand; @@ -63,7 +64,7 @@ public IComponentDialog getNewDialog() { - return null; + return new NewElementDialog(); } public ComponentSpecification[] getQuickPicks()
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/dialogs/NewComponentDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/dialogs/NewComponentDialog.java index d148a72..123978b 100644 --- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/dialogs/NewComponentDialog.java +++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/dialogs/NewComponentDialog.java
@@ -104,7 +104,7 @@ composite.setLayoutData(gdFill); Label nameLabel = new Label(composite, SWT.NONE); - nameLabel.setText("name");//XSDEditorPlugin.getXSDString("_UI_LABEL_NAME")); //$NON-NLS-1$ + nameLabel.setText("Name:");//XSDEditorPlugin.getXSDString("_UI_LABEL_NAME")); //$NON-NLS-1$ nameField = new Text(composite, SWT.SINGLE | SWT.BORDER); GridData gd= new GridData();
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/dialogs/NewElementButtonHandler.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/dialogs/NewElementButtonHandler.java new file mode 100644 index 0000000..82a3c43 --- /dev/null +++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/dialogs/NewElementButtonHandler.java
@@ -0,0 +1,26 @@ +/******************************************************************************* + * 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.editor.internal.dialogs; + +import org.eclipse.wst.common.ui.internal.search.dialogs.INewComponentHandler; + +public class NewElementButtonHandler implements INewComponentHandler +{ + public NewElementButtonHandler() + { + } + + public void openNewComponentDialog() + { + NewElementDialog newElementDialog = new NewElementDialog(); + newElementDialog.open(); + } +}
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/dialogs/NewElementDialog.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/dialogs/NewElementDialog.java new file mode 100644 index 0000000..b93eade --- /dev/null +++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/dialogs/NewElementDialog.java
@@ -0,0 +1,55 @@ +/******************************************************************************* + * 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.editor.internal.dialogs; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.swt.widgets.Display; +import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification; +import org.eclipse.wst.xsd.adt.edit.IComponentDialog; +import org.eclipse.wst.xsd.ui.internal.search.IXSDSearchConstants; + +public class NewElementDialog extends NewComponentDialog implements IComponentDialog +{ + protected Object setObject; + protected int typeKind; + protected Object selection; + + public NewElementDialog() + { + super(Display.getCurrent().getActiveShell(), "New Element", "NewElement"); + } + + public int createAndOpen() + { + int returnCode = super.createAndOpen(); + if (returnCode == 0) + { + if (setObject instanceof Adapter) + { + //Command command = new AddComplexTypeDefinitionCommand(getName(), schema); + } + } + return returnCode; + } + + public ComponentSpecification getSelectedComponent() + { + ComponentSpecification componentSpecification = new ComponentSpecification(null, getName(), null); + componentSpecification.setMetaName(IXSDSearchConstants.ELEMENT_META_NAME); + componentSpecification.setNew(true); + return componentSpecification; + } + + public void setInitialSelection(ComponentSpecification componentSpecification) + { + // TODO Auto-generated method stub + } + }
diff --git a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/search/XSDSearchListDialogDelegate.java b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/search/XSDSearchListDialogDelegate.java index 3e1b237..1c719ac 100644 --- a/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/search/XSDSearchListDialogDelegate.java +++ b/bundles/org.eclipse.wst.xsd.ui/src-adt-xsd/org/eclipse/wst/xsd/editor/internal/search/XSDSearchListDialogDelegate.java
@@ -24,6 +24,7 @@ import org.eclipse.wst.common.ui.internal.search.dialogs.ScopedComponentSearchListDialog; import org.eclipse.wst.xsd.adt.edit.IComponentDialog; import org.eclipse.wst.xsd.editor.XSDEditorPlugin; +import org.eclipse.wst.xsd.editor.internal.dialogs.NewElementButtonHandler; import org.eclipse.wst.xsd.editor.internal.dialogs.NewTypeButtonHandler; import org.eclipse.xsd.XSDSchema; import org.eclipse.xsd.util.XSDConstants; @@ -71,6 +72,7 @@ configuration.setSearchListProvider(searchListProvider); configuration.setFilterLabelText("Name (? = any character, * = any string):"); configuration.setListLabelText("Elements:"); + configuration.setNewComponentHandler(new NewElementButtonHandler()); //TODO externalize string dialog = new ScopedComponentSearchListDialog(shell, "Set element reference", configuration); }