| /******************************************************************************* |
| * Copyright (c) 2010 SAP AG. |
| * 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: |
| * Emil Simeonov - initial API and implementation. |
| * Dimitar Donchev - initial API and implementation. |
| * Dimitar Tenev - initial API and implementation. |
| * Nevena Manova - initial API and implementation. |
| * Georgi Konstantinov - initial API and implementation. |
| *******************************************************************************/ |
| package org.eclipse.wst.sse.sieditor.ui.v2.dt; |
| |
| import org.eclipse.xsd.XSDPackage; |
| import org.eclipse.xsd.XSDWhiteSpace; |
| |
| import org.eclipse.wst.sse.sieditor.model.xsd.api.IElement; |
| import org.eclipse.wst.sse.sieditor.model.xsd.api.IFacet; |
| import org.eclipse.wst.sse.sieditor.model.xsd.api.IStructureType; |
| import org.eclipse.wst.sse.sieditor.model.xsd.api.ISimpleType.Whitespace; |
| import org.eclipse.wst.sse.sieditor.ui.v2.UIConstants; |
| |
| public class ElementConstraintsController extends SimpleTypeConstraintsController { |
| |
| private static final IFacet[] EMTPTY_FACETS = new IFacet[0]; |
| |
| private final IDataTypesFormPageController formPageController; |
| private IElement input; |
| private IStructureType structureInput; |
| |
| public ElementConstraintsController(IDataTypesFormPageController formPageController, IElement input) { |
| super(formPageController); |
| this.formPageController = formPageController; |
| this.input = input; |
| } |
| |
| public ElementConstraintsController(IDataTypesFormPageController formPageController, IStructureType structureInput) { |
| super(formPageController); |
| this.formPageController = formPageController; |
| this.structureInput = structureInput; |
| } |
| |
| public IFacet[] getEnums() { |
| return EMTPTY_FACETS; |
| } |
| |
| public String getFractionDigits() { |
| return UIConstants.EMPTY_STRING; |
| } |
| |
| public String getLength() { |
| return UIConstants.EMPTY_STRING; |
| } |
| |
| @Override |
| public String getMaxExclusive() { |
| return UIConstants.EMPTY_STRING; |
| } |
| |
| public String getMaxInclusive() { |
| return UIConstants.EMPTY_STRING; |
| } |
| |
| @Override |
| public String getMaxLength() { |
| return UIConstants.EMPTY_STRING; |
| } |
| |
| @Override |
| public String getMinExclusive() { |
| return UIConstants.EMPTY_STRING; |
| } |
| |
| @Override |
| public String getMinInclusive() { |
| return UIConstants.EMPTY_STRING; |
| } |
| |
| @Override |
| public String getMinLength() { |
| return UIConstants.EMPTY_STRING; |
| } |
| |
| @Override |
| public IFacet[] getPatterns() { |
| return EMTPTY_FACETS; |
| } |
| |
| @Override |
| public String getTotalDigits() { |
| return UIConstants.EMPTY_STRING; |
| } |
| |
| @Override |
| public Whitespace getWhitespace() { |
| return null; |
| } |
| |
| public void addEnum(String value) { |
| setFacet(value, XSDPackage.XSD_ENUMERATION_FACET); |
| } |
| |
| public void addPattern(String value) { |
| setFacet(value, XSDPackage.XSD_PATTERN_FACET); |
| } |
| |
| public void setFractionDigits(String value) { |
| if (!getFractionDigits().equals(value)) { |
| setFacet(value, XSDPackage.XSD_FRACTION_DIGITS_FACET); |
| } |
| } |
| |
| public void setLength(String value) { |
| if (!getLength().equals(value)) { |
| setFacet(value, XSDPackage.XSD_LENGTH_FACET); |
| } |
| } |
| |
| public void setMaxExclusive(String value) { |
| if (!getMaxExclusive().equals(value)) { |
| setFacet(value, XSDPackage.XSD_MAX_EXCLUSIVE_FACET); |
| } |
| } |
| |
| public void setMaxInclusive(String value) { |
| if (!getMaxInclusive().equals(value)) { |
| setFacet(value, XSDPackage.XSD_MAX_INCLUSIVE_FACET); |
| } |
| } |
| |
| public void setMaxLength(String value) { |
| if (!getMaxLength().equals(value)) { |
| setFacet(value, XSDPackage.XSD_MAX_LENGTH_FACET); |
| } |
| } |
| |
| public void setMinExclusive(String value) { |
| if (!getMinExclusive().equals(value)) { |
| setFacet(value, XSDPackage.XSD_MIN_EXCLUSIVE_FACET); |
| } |
| } |
| |
| public void setMinInclusive(String value) { |
| if (!getMinInclusive().equals(value)) { |
| setFacet(value, XSDPackage.XSD_MIN_INCLUSIVE_FACET); |
| } |
| } |
| |
| public void setMinLength(String value) { |
| if (!getMinLength().equals(value)) { |
| setFacet(value, XSDPackage.XSD_MIN_LENGTH_FACET); |
| } |
| } |
| |
| public void setTotalDigits(String value) { |
| if (!getTotalDigits().equals(value)) { |
| setFacet(value, XSDPackage.XSD_TOTAL_DIGITS_FACET); |
| } |
| } |
| |
| public void setWhitespace(Whitespace whitespace) { |
| if (whitespace != null) { |
| XSDWhiteSpace value = null; |
| switch (whitespace) { |
| case COLLAPSE: |
| value = XSDWhiteSpace.COLLAPSE_LITERAL; |
| break; |
| case PRESERVE: |
| value = XSDWhiteSpace.PRESERVE_LITERAL; |
| break; |
| case REPLACE: |
| value = XSDWhiteSpace.REPLACE_LITERAL; |
| break; |
| default: |
| throw new IllegalArgumentException(); |
| } |
| setFacet(value.getLiteral(), XSDPackage.XSD_WHITE_SPACE_FACET); |
| } |
| } |
| |
| private void setFacet(String value, int facetId) { |
| if (input != null) { |
| formPageController.setElementFacet(input, value, facetId); |
| } else { |
| formPageController.setGlobalElementFacet(structureInput, value, facetId); |
| } |
| } |
| } |