sysmodelmgr/com.symbian.smt.gui/src/com/symbian/smt/gui/smtwidgets/ValidModelEvent.java
author terytkon
Thu, 11 Mar 2010 19:08:43 +0200
changeset 0 522a326673b6
permissions -rw-r--r--
Moved swconfigapps content under oss repository.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     1
// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     2
// All rights reserved.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     3
// This component and the accompanying materials are made available
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     4
// under the terms of "Eclipse Public License v1.0"
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     5
// which accompanies this distribution, and is available
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     7
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     8
// Initial Contributors:
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    10
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    11
// Contributors:
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    12
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    13
// Description:
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    14
//
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    15
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    16
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    17
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    18
package com.symbian.smt.gui.smtwidgets;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    19
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    20
/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    21
 * This class encapsulates the outcome of the validation of a field which the
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    22
 * user has touched.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    23
 * <p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    24
 * It contains information on the event result (whether validation was
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    25
 * successful or failed) and the message associated with the event.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    26
 * </p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    27
 * <p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    28
 * It is created by objects of type ValidModelObservable when validation of a
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    29
 * field occurs and it is propagated to registered ValidModelDefinedListener
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    30
 * objects in order to allow them to set their state accordingly.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    31
 * </p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    32
 * <p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    33
 * An example of usage of this class is provided by Properties pages which
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    34
 * require to disable their "Ok" and "Apply" buttons and to show a relevant
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    35
 * error message when validation of a specific field fails.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    36
 * </p>
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    37
 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    38
 * @author barbararosi-schwartz
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    39
 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    40
 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    41
public class ValidModelEvent {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    42
	public enum Type {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    43
		ERROR, SUCCESS, WARNING;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    44
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    45
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    46
	private Boolean isValid;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    47
	private String message;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    48
	private Type type;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    49
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    50
	/**
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    51
	 * The constructor.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    52
	 * 
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    53
	 * @param result
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    54
	 *            a Boolean representing whether validation was successful or
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    55
	 *            not
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    56
	 * @param message
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    57
	 *            the message associated with the validation. If validation
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    58
	 *            succeeded, the message may be empty. If validation failed, the
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    59
	 *            message cannot be empty. If it is, a default error message is
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    60
	 *            enforced.
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    61
	 */
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    62
	public ValidModelEvent(Boolean isValid, String message, Type type) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    63
		if (isValid == null) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    64
			throw new IllegalArgumentException("Arg result cannot be null.");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    65
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    66
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    67
		if (message == null) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    68
			throw new IllegalArgumentException("Arg message cannot be null.");
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    69
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    70
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    71
		// Enforcing the message not to be non empty
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    72
		if ((!isValid) && (message.length() == 0)) {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    73
			message = "Error message unavailable.";
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    74
		}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    75
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    76
		this.isValid = isValid;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    77
		this.message = message;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    78
		this.type = type;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    79
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    80
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    81
	public String getMessage() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    82
		return message;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    83
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    84
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    85
	public Type getType() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    86
		return type;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    87
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    88
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    89
	public Boolean isValid() {
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    90
		return isValid;
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    91
	}
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    92
522a326673b6 Moved swconfigapps content under oss repository.
terytkon
parents:
diff changeset
    93
}