Skip to main content

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

summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeDeclarationSection.java')
-rw-r--r--bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeDeclarationSection.java908
1 files changed, 0 insertions, 908 deletions
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 1ab3e25504..0000000000
--- a/bundles/org.eclipse.wst.xsd.ui/src-common/org/eclipse/wst/xsd/ui/internal/common/properties/sections/XSDAttributeDeclarationSection.java
+++ /dev/null
@@ -1,908 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2001, 2010 IBM Corporation and others.
- * All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Eclipse Public License v1.0
- * which accompanies this 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.jface.viewers.ISelection;
-import org.eclipse.jface.window.Window;
-import org.eclipse.osgi.util.NLS;
-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.layout.RowLayout;
-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.IEditorPart;
-import org.eclipse.ui.IWorkbenchPart;
-import org.eclipse.ui.PlatformUI;
-import org.eclipse.wst.common.ui.internal.search.dialogs.ComponentSpecification;
-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.commands.BaseCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateAttributeValueCommand;
-import org.eclipse.wst.xsd.ui.internal.common.commands.UpdateNameCommand;
-import org.eclipse.wst.xsd.ui.internal.dialogs.NewTypeDialog;
-import org.eclipse.wst.xsd.ui.internal.editor.Messages;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDAttributeReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorCSHelpIds;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDEditorPlugin;
-import org.eclipse.wst.xsd.ui.internal.editor.XSDTypeReferenceEditManager;
-import org.eclipse.wst.xsd.ui.internal.editor.search.XSDSearchListDialogDelegate;
-import org.eclipse.xsd.XSDAttributeDeclaration;
-import org.eclipse.xsd.XSDTypeDefinition;
-import org.eclipse.xsd.util.XSDConstants;
-import org.w3c.dom.Element;
-
-public class XSDAttributeDeclarationSection extends RefactoringSection
-{
- protected Text nameText, defaultOrFixedText;
- protected CCombo componentNameCombo, typeCombo, usageCombo, formCombo;
- protected Button defaultButton, fixedButton;
- protected String typeName = "", refName = ""; //$NON-NLS-1$
- 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, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_LABEL_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.setEnabled(!isAttributeReference);
- applyAllListeners(nameText);
-
- PlatformUI.getWorkbench().getHelpSystem().setHelp(nameText,
- XSDEditorCSHelpIds.GENERAL_TAB__ATTRIBUTE__NAME);
-
- // ------------------------------------------------------------------
- // Refactor/rename hyperlink
- // ------------------------------------------------------------------
- if (!hideHyperLink)
- {
- createRenameHyperlink(composite);
- setRenameHyperlinkEnabled(!isAttributeReference);
- }
- else
- {
- getWidgetFactory().createCLabel(composite, "");
- }
-
-
- // ------------------------------------------------------------------
- // Ref Label
- // ------------------------------------------------------------------
- if (isAttributeReference)
- {
- data = new GridData();
- data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- data.grabExcessHorizontalSpace = false;
- CLabel refLabel = getWidgetFactory().createCLabel(composite, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_LABEL_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.addListener(SWT.Traverse, this);
- componentNameCombo.setLayoutData(data);
-
- PlatformUI.getWorkbench().getHelpSystem().setHelp(componentNameCombo,
- XSDEditorCSHelpIds.GENERAL_TAB__ATTRIBUTE__NAME);
-
- // dummy
- 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().createCCombo(composite);
- typeCombo.setLayoutData(data);
- typeCombo.addSelectionListener(this);
- typeCombo.addListener(SWT.Traverse, this);
-
- PlatformUI.getWorkbench().getHelpSystem().setHelp(typeCombo,
- XSDEditorCSHelpIds.GENERAL_TAB__ATTRIBUTE__TYPE);
-
- // dummy
- getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-
- // ------------------------------------------------------------------
- // UsageLabel
- // ------------------------------------------------------------------
- data = new GridData();
- data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- data.grabExcessHorizontalSpace = false;
- CLabel useLabel = getWidgetFactory().createCLabel(composite, XSDEditorPlugin.getXSDString("_UI_USAGE"));
- useLabel.setLayoutData(data);
-
- // ------------------------------------------------------------------
- // UsageCombo
- // ------------------------------------------------------------------
- data = new GridData();
- data.grabExcessHorizontalSpace = true;
- data.horizontalAlignment = GridData.FILL;
- usageCombo = getWidgetFactory().createCCombo(composite);
- usageCombo.setLayoutData(data);
- usageCombo.addSelectionListener(this);
- usageCombo.add("");
- usageCombo.add("required"); //$NON-NLS-1$
- usageCombo.add("optional"); //$NON-NLS-1$
- usageCombo.add("prohibited"); //$NON-NLS-1$
- usageCombo.addSelectionListener(this);
-
- // dummy
- getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-
- // ------------------------------------------------------------------
- // defaultLabel
- // ------------------------------------------------------------------
- data = new GridData();
- data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- data.grabExcessHorizontalSpace = false;
- CLabel defaultLabel = getWidgetFactory().createCLabel(composite, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_VALUE_COLON);
- defaultLabel.setLayoutData(data);
-
- Composite radio = getWidgetFactory().createComposite(composite);
- radio.setLayout(new RowLayout());
-
- defaultButton = new Button(radio, SWT.RADIO);
- defaultButton.setText(org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_DEFAULT);
- defaultButton.setBackground(parent.getBackground());
- defaultButton.addSelectionListener(this);
-
- fixedButton = new Button(radio, SWT.RADIO);
- fixedButton.setText(org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_FIXED);
- fixedButton.setBackground(parent.getBackground());
- fixedButton.addSelectionListener(this);
-
- // dummy
- getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-
- // dummy
- getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-
- // ------------------------------------------------------------------
- // defaultText
- // ------------------------------------------------------------------
- data = new GridData();
- data.grabExcessHorizontalSpace = true;
- data.horizontalAlignment = GridData.FILL;
- defaultOrFixedText = getWidgetFactory().createText(composite, ""); //$NON-NLS-1$
- defaultOrFixedText.setLayoutData(data);
- applyAllListeners(defaultOrFixedText);
-
- //PlatformUI.getWorkbench().getHelpSystem().setHelp(nameText,
- // XSDEditorCSHelpIds.GENERAL_TAB__ATTRIBUTE__DEFAULT);
-
- // dummy
- getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
-
- // ------------------------------------------------------------------
- // FormLabel
- // ------------------------------------------------------------------
- data = new GridData();
- data.horizontalAlignment = GridData.HORIZONTAL_ALIGN_BEGINNING;
- data.grabExcessHorizontalSpace = false;
- CLabel formLabel = getWidgetFactory().createCLabel(composite, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_FORM);
- formLabel.setLayoutData(data);
-
- // ------------------------------------------------------------------
- // FormCombo
- // ------------------------------------------------------------------
- data = new GridData();
- data.grabExcessHorizontalSpace = true;
- data.horizontalAlignment = GridData.FILL;
- formCombo = getWidgetFactory().createCCombo(composite);
- formCombo.setLayoutData(data);
- formCombo.addSelectionListener(this);
- formCombo.add("");
- formCombo.add("qualified"); //$NON-NLS-1$
- formCombo.add("unqualified"); //$NON-NLS-1$
- formCombo.addSelectionListener(this);
-
- // dummy
- getWidgetFactory().createCLabel(composite, ""); //$NON-NLS-1$
- }
-
- private void fillTypesCombo()
- {
- IEditorPart editor = getActiveEditor();
- XSDTypeReferenceEditManager manager = (XSDTypeReferenceEditManager)editor.getAdapter(XSDTypeReferenceEditManager.class);
- if (manager != null)
- {
- ComponentSpecification[] items = manager.getQuickPicks();
-
- typeCombo.removeAll();
- typeCombo.add(Messages._UI_COMBO_BROWSE);
- typeCombo.add(Messages._UI_COMBO_NEW);
- for (int i = 0; i < items.length; i++)
- {
- typeCombo.add(items[i].getName());
- }
-
- XSDAttributeDeclaration namedComponent = ((XSDAttributeDeclaration) input).getResolvedAttributeDeclaration();
- XSDTypeDefinition namedComponentType = namedComponent.getType();
- if (namedComponentType != null)
- {
- String currentTypeName = namedComponentType.getQName(xsdSchema); // no
- // prefix
- ComponentSpecification ret = getComponentSpecFromQuickPickForValue(currentTypeName, manager);
- if (ret == null) // not in quickPick
- typeCombo.add(currentTypeName);
- }
- }
- }
-
- private ComponentSpecification getComponentSpecFromQuickPickForValue(String value, ComponentReferenceEditManager editManager)
- {
- if (editManager != null)
- {
- ComponentSpecification[] quickPicks = editManager.getQuickPicks();
- if (quickPicks != null)
- {
- for (int i=0; i < quickPicks.length; i++)
- {
- ComponentSpecification componentSpecification = quickPicks[i];
- if (value !=null && componentSpecification!=null && value.equals(componentSpecification.getName()))
- {
- return componentSpecification;
- }
- }
- }
- }
- return null;
- }
-
- /*
- * @see org.eclipse.wst.common.ui.properties.internal.provisional.view.ITabbedPropertySection#refresh()
- */
- public void refresh()
- {
- super.refresh();
-
- setListenerEnabled(false);
-
- // refresh name
-
- nameText.setText(""); //$NON-NLS-1$
- if (input instanceof XSDAttributeDeclaration)
- {
- XSDAttributeDeclaration namedComponent = ((XSDAttributeDeclaration) input).getResolvedAttributeDeclaration();
-
- String name = namedComponent.getName();
- if (name != null)
- {
- nameText.setText(name);
- }
- }
-
- if (isAttributeReference)
- {
- refreshRefCombo();
- }
-
- // refresh type
-
- typeCombo.setText(""); //$NON-NLS-1$
- if (input != null)
- {
- if (input instanceof XSDAttributeDeclaration)
- {
- XSDAttributeDeclaration xsdAttribute = (XSDAttributeDeclaration) input;
- isAttributeReference = ((XSDAttributeDeclaration)input).isAttributeDeclarationReference();
- XSDTypeDefinition typeDef = xsdAttribute.getResolvedAttributeDeclaration().getTypeDefinition();
- boolean isAnonymous = xsdAttribute.getAnonymousTypeDefinition() != null;
-
- if (isAnonymous)
- {
- typeCombo.setText("**anonymous**"); //$NON-NLS-1$
- }
- else
- {
- fillTypesCombo();
- 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$
- }
- }
-
- usageCombo.setText("");
- usageCombo.setEnabled(!xsdAttribute.isGlobal());
-
- Element element = xsdAttribute.getElement();
- boolean hasUseAttribute = false;
- if (element != null)
- {
- hasUseAttribute = element.hasAttribute(XSDConstants.USE_ATTRIBUTE);
- if (hasUseAttribute)
- {
- String usage = element.getAttribute(XSDConstants.USE_ATTRIBUTE);
- usageCombo.setText(usage);
- }
- }
-
- defaultOrFixedText.setText(""); //$NON-NLS-1$
-
- boolean hasDefaultAttribute = false, hasFixedAttribute = false;
- if (element != null)
- {
- hasDefaultAttribute = element.hasAttribute(XSDConstants.DEFAULT_ATTRIBUTE);
- hasFixedAttribute = element.hasAttribute(XSDConstants.FIXED_ATTRIBUTE);
-
- // Case where no fixed or default attributes exist, so ensure one of the radio buttons is selected
- if (!hasDefaultAttribute && !hasFixedAttribute)
- {
- if (!defaultButton.getSelection() && !fixedButton.getSelection()) // if none are selected then pick fixed
- fixedButton.setSelection(true);
- }
- else
- {
- // if both are present in source (an error!), assume that *fixed* takes "precedence"
- defaultButton.setSelection(!hasFixedAttribute && hasDefaultAttribute);
- fixedButton.setSelection(hasFixedAttribute);
- if (hasDefaultAttribute)
- {
- String theDefault = element.getAttribute(XSDConstants.DEFAULT_ATTRIBUTE);
- defaultOrFixedText.setText(theDefault);
- }
- if (hasFixedAttribute) // will overwrite default if both present
- {
- String fixed = element.getAttribute(XSDConstants.FIXED_ATTRIBUTE);
- defaultOrFixedText.setText(fixed);
- }
- }
- }
-
- formCombo.setText("");
- formCombo.setEnabled(!xsdAttribute.isGlobal() && !isAttributeReference);
- boolean hasFormAttribute = false;
- if (element != null)
- {
- hasFormAttribute = element.hasAttribute(XSDConstants.FORM_ATTRIBUTE);
- if (hasFormAttribute)
- {
- String form = element.getAttribute(XSDConstants.FORM_ATTRIBUTE);
- formCombo.setText(form);
- }
- }
- }
- }
-
- setListenerEnabled(true);
- }
-
- public boolean shouldUseExtraSpace()
- {
- return false;
- }
-
- public void doWidgetDefaultSelected(SelectionEvent e)
- {
- if (e.widget == typeCombo)
- {
- String selection = typeCombo.getText();
- if (shouldPerformComboSelection(SWT.DefaultSelection, selection))
- handleWidgetSelection(e);
- } else if (e.widget == componentNameCombo)
- {
- String selection = componentNameCombo.getText();
- if (shouldPerformComboSelection(SWT.DefaultSelection, selection))
- handleWidgetSelection(e);
- } else
- {
- handleWidgetSelection(e);
- }
- }
-
- public void doWidgetSelected(SelectionEvent e)
- {
- if (e.widget == typeCombo)
- {
- String selection = typeCombo.getText();
- if (shouldPerformComboSelection(SWT.Selection, selection))
- handleWidgetSelection(e);
- } else if (e.widget == componentNameCombo)
- {
- String selection = componentNameCombo.getText();
- if (shouldPerformComboSelection(SWT.Selection, selection))
- handleWidgetSelection(e);
- } else
- {
- handleWidgetSelection(e);
- }
- }
-
- private void handleWidgetSelection(SelectionEvent e)
- {
- if (e.widget == typeCombo)
- {
- IEditorPart editor = getActiveEditor();
- if (editor == null) return;
- ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDTypeReferenceEditManager.class);
-
- String selection = typeCombo.getText();
- ComponentSpecification newValue;
- IComponentDialog dialog= null;
- if ( selection.equals(Messages._UI_COMBO_BROWSE))
- {
- dialog = manager.getBrowseDialog();
- ((XSDSearchListDialogDelegate) dialog).showComplexTypes(false);
- }
- else if ( selection.equals(Messages._UI_COMBO_NEW))
- {
- dialog = manager.getNewDialog();
- ((NewTypeDialog) dialog).allowComplexType(false);
- }
-
- if (dialog != null)
- {
- if (dialog.createAndOpen() == Window.OK)
- {
- newValue = dialog.getSelectedComponent();
- XSDAttributeDeclaration xsdAttribute = ((XSDAttributeDeclaration) input).getResolvedAttributeDeclaration();
- manager.modifyComponentReference(xsdAttribute, newValue);
- }
- else{
- typeCombo.setText(typeName);
- }
- }
- else //use the value from selected quickPick item
- {
- newValue = getComponentSpecFromQuickPickForValue(selection, manager);
- if (newValue != null)
- manager.modifyComponentReference(input, newValue);
- }
- }
- else if (e.widget == componentNameCombo)
- {
- IEditorPart editor = getActiveEditor();
- if (editor == null) return;
- ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDAttributeReferenceEditManager.class);
-
- String selection = componentNameCombo.getText();
- ComponentSpecification newValue;
- IComponentDialog dialog= null;
- if ( selection.equals(Messages._UI_COMBO_BROWSE))
- {
- dialog = manager.getBrowseDialog();
- }
- else if ( selection.equals(Messages._UI_COMBO_NEW))
- {
- dialog = manager.getNewDialog();
- }
-
- if (dialog != null)
- {
- if (dialog.createAndOpen() == Window.OK)
- {
- newValue = dialog.getSelectedComponent();
- manager.modifyComponentReference(input, newValue);
- }
- else
- {
- componentNameCombo.setText(refName);
- }
- }
- else //use the value from selected quickPick item
- {
- newValue = getComponentSpecFromQuickPickForValue(selection, manager);
- if (newValue != null)
- manager.modifyComponentReference(input, newValue);
- }
- }
- else
- {
- XSDAttributeDeclaration xsdAttribute = (XSDAttributeDeclaration) input;
- Element element = xsdAttribute.getElement();
- if (e.widget == usageCombo)
- {
- final String newValue = usageCombo.getText();
- if (element != null)
- {
- PropertiesChangeCommand command = new PropertiesChangeCommand(element, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_USAGE)
- {
- protected void doExecuteSteps()
- {
- if (newValue.length() == 0)
- element.removeAttribute(XSDConstants.USE_ATTRIBUTE);
- else
- element.setAttribute(XSDConstants.USE_ATTRIBUTE, newValue);
- }
- };
- getCommandStack().execute(command);
- }
- }
- else if (e.widget == formCombo)
- {
- final String newValue = formCombo.getText();
- if (element != null)
- {
- PropertiesChangeCommand command = new PropertiesChangeCommand(element, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_LABEL_FORM)
- {
- protected void doExecuteSteps()
- {
- if (newValue.length() == 0)
- element.removeAttribute(XSDConstants.FORM_ATTRIBUTE);
- else
- element.setAttribute(XSDConstants.FORM_ATTRIBUTE, newValue);
- }
- };
- getCommandStack().execute(command);
- }
- }
- else if (e.widget == defaultButton)
- {
- boolean newValue = defaultButton.getSelection();
- if (element != null)
- {
- if (newValue)
- {
- if (element.hasAttribute(XSDConstants.FIXED_ATTRIBUTE))
- {
- final String value = element.getAttribute(XSDConstants.FIXED_ATTRIBUTE);
-
- PropertiesChangeCommand command = new PropertiesChangeCommand(element, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_DEFAULT)
- {
- protected void doExecuteSteps()
- {
- element.removeAttribute(XSDConstants.FIXED_ATTRIBUTE);
- element.setAttribute(XSDConstants.DEFAULT_ATTRIBUTE, value);
- }
- };
- getCommandStack().execute(command);
- }
- }
- }
- }
- else if (e.widget == fixedButton)
- {
- boolean newValue = fixedButton.getSelection();
- if (element != null)
- {
- if (newValue)
- {
- if (element.hasAttribute(XSDConstants.DEFAULT_ATTRIBUTE))
- {
- final String value = element.getAttribute(XSDConstants.DEFAULT_ATTRIBUTE);
- PropertiesChangeCommand command = new PropertiesChangeCommand(element, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_FIXED)
- {
- protected void doExecuteSteps()
- {
- element.removeAttribute(XSDConstants.DEFAULT_ATTRIBUTE);
- element.setAttribute(XSDConstants.FIXED_ATTRIBUTE, value);
- }
- };
- getCommandStack().execute(command);
- }
- }
- }
- }
- }
- super.doWidgetSelected(e);
- }
-
- protected void doHandleEvent(Event event)
- {
- if (event.type == SWT.Traverse) {
- if (event.detail == SWT.TRAVERSE_ARROW_NEXT || event.detail == SWT.TRAVERSE_ARROW_PREVIOUS) {
- isTraversing = true;
- return;
- }
- }
- 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(org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_ACTION_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();
- }
-
- }
- }
- else if (event.widget == defaultOrFixedText)
- {
- XSDAttributeDeclaration xsdAttribute = (XSDAttributeDeclaration) input;
- String newValue = defaultOrFixedText.getText();
- Element element = xsdAttribute.getElement();
- if (element != null)
- {
- if (newValue.length() == 0)
- {
- PropertiesChangeCommand command = new PropertiesChangeCommand(element, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_LABEL_VALUE)
- {
- protected void doExecuteSteps()
- {
- element.removeAttribute(XSDConstants.FIXED_ATTRIBUTE);
- element.removeAttribute(XSDConstants.DEFAULT_ATTRIBUTE);
- }
- };
- getCommandStack().execute(command);
- }
- else
- {
- UpdateAttributeValueCommand command = null;
- if (fixedButton.getSelection())
- {
- command = new UpdateAttributeValueCommand(element, XSDConstants.FIXED_ATTRIBUTE, newValue, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_FIXED)
- {
- protected void doPostProcessing()
- {
- element.removeAttribute(XSDConstants.DEFAULT_ATTRIBUTE);
- }
- };
- }
- else
- {
- command = new UpdateAttributeValueCommand(element, XSDConstants.DEFAULT_ATTRIBUTE, newValue, org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_DEFAULT)
- {
- protected void doPostProcessing()
- {
- element.removeAttribute(XSDConstants.FIXED_ATTRIBUTE);
- }
- };
- }
- command.setDeleteIfEmpty(true);
- 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(org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_ERROR_INVALID_NAME);
- return false;
- }
-
- return true;
- }
-
- public void dispose()
- {
- if (componentNameCombo != null && !componentNameCombo.isDisposed())
- {
- componentNameCombo.removeSelectionListener(this);
- componentNameCombo.removeListener(SWT.Traverse, this);
- }
- if (nameText != null && !nameText.isDisposed())
- removeListeners(nameText);
- if (typeCombo != null && !typeCombo.isDisposed())
- {
- typeCombo.removeSelectionListener(this);
- typeCombo.removeListener(SWT.Traverse, this);
- }
- super.dispose();
- }
-
- public void setInput(IWorkbenchPart part, ISelection selection)
- {
- super.setInput(part, selection);
- setListenerEnabled(false);
- init();
- relayout();
-
- setListenerEnabled(true);
- }
-
- protected void init()
- {
- if (input instanceof XSDAttributeDeclaration)
- {
- XSDAttributeDeclaration xsdAttribute = (XSDAttributeDeclaration) input;
- isAttributeReference = xsdAttribute.isAttributeDeclarationReference();
- hideHyperLink = !xsdAttribute.isGlobal() || isAttributeReference;
- }
- }
-
- 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();
- }
-
- protected void refreshRefCombo()
- {
- componentNameCombo.setText(""); //$NON-NLS-1$
- fillComponentNameCombo();
- }
-
- private void fillComponentNameCombo()
- {
- IEditorPart editor = getActiveEditor();
- ComponentReferenceEditManager manager = (ComponentReferenceEditManager)editor.getAdapter(XSDAttributeReferenceEditManager.class);
-
- componentNameCombo.removeAll();
- componentNameCombo.add(Messages._UI_ACTION_BROWSE);
- componentNameCombo.add(Messages._UI_ACTION_NEW);
- ComponentSpecification[] quickPicks = manager.getQuickPicks();
- if (quickPicks != null)
- {
- for (int i=0; i < quickPicks.length; i++)
- {
- ComponentSpecification componentSpecification = quickPicks[i];
- componentNameCombo.add(componentSpecification.getName());
- }
- }
- ComponentSpecification[] history = manager.getHistory();
- if (history != null)
- {
- for (int i=0; i < history.length; i++)
- {
- ComponentSpecification componentSpecification = history[i];
- componentNameCombo.add(componentSpecification.getName());
- }
- }
-
- XSDAttributeDeclaration namedComponent = (XSDAttributeDeclaration) input;
- Element element = namedComponent.getElement();
- if (element != null)
- {
- String attrValue = element.getAttribute(XSDConstants.REF_ATTRIBUTE);
- if (attrValue == null)
- {
- attrValue = ""; //$NON-NLS-1$
- }
- ComponentSpecification ret = getComponentSpecFromQuickPickForValue(attrValue, manager);
- if (ret == null)
- {
- componentNameCombo.add(attrValue);
- }
- componentNameCombo.setText(attrValue);
- refName = attrValue;
- }
- }
-
- protected class PropertiesChangeCommand extends BaseCommand
- {
- protected Element element;
- public PropertiesChangeCommand(Element element, String label)
- {
- super(NLS.bind(org.eclipse.wst.xsd.ui.internal.common.util.Messages._UI_ACTION_CHANGE, label));
- this.element = element;
- }
-
- public void execute()
- {
- try
- {
- beginRecording(element);
- doExecuteSteps();
- }
- finally
- {
- endRecording();
- }
- }
-
- protected void doExecuteSteps()
- {
-
- }
- }
-}

Back to the top