blob: e8f057c9310746a4013b3f4765bcde333c597619 [file] [log] [blame]
/*******************************************************************************
* 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);
}
}
}