[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);
     }