/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ /* * This file is part of the LibreOffice project. * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. * * This file incorporates work covered by the following license notice: * * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed * with this work for additional information regarding copyright * ownership. The ASF licenses this file to you under the Apache * License, Version 2.0 (the "License"); you may not use this file * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ #ifndef __com_sun_star_form_validation_ValidatableControlModel_idl__ #define __com_sun_star_form_validation_ValidatableControlModel_idl__ #include #include #include module com { module sun { module star { module form { module validation { /** specifies the model of a form control which supports live validation of its input.

Validatable control models support setting a validator with dynamic validity constraints, and broadcasting changes in their value as well as the validity of their value.

*/ service ValidatableControlModel { /** specifies the basic functionality for a form control model

Via this service, validatable control models inherit the com::sun::star::util::XCloneable interface.
If a validatable control model, at which a validator has been set (via XValidatable::setValidator()), is being cloned, then the validator is also set at the clone. Effectively, this means that both control model instances share the same validator instance.

*/ service com::sun::star::form::FormControlModel; /** enables support for validating the value of the control model

Setting and retrieving the current validator of the control model is possible via the XValidatable interface (which XValidatableFormComponent is derived from).

Easy access to the current value of the control, as well as it's validity (relative to the active validator), is provided by the methods XValidatableFormComponent::isValid() and XValidatableFormComponent::getCurrentValue().

Note that the type of the value provided by XValidatableFormComponent::getCurrentValue() is not specified here, but depends on the concrete control type.

*/ interface XValidatableFormComponent; /** enables support for validators with dynamic validity constraints.

As soon as a validator is set via XValidatable::setValidator(), the validatable control model registers itself as listener. If the validity constraint of the validator changes, the ValidatableControlModel re-validates its current valid, and broadcasts any resulting changes to all its XFormComponentValidityListener, if necessary.

*/ interface XValidityConstraintListener; }; }; }; }; }; }; #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */