1 /*
2 * $HeadURL: $
3 * $Date: $
4 * $Revision: $
5 * $Author: $
6 *
7 * Copyright (c) 2005 MindTree Consulting Ltd.
8 *
9 * This file is part of Insight.
10 *
11 * Insight is free software: you can redistribute it and/or modify it under the
12 * terms of the GNU General Public License as published by the Free Software
13 * Foundation, either version 3 of the License, or (at your option) any later
14 * version.
15 *
16 * Insight is distributed in the hope that it will be useful, but
17 * WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
19 * Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License along with
22 * Insight. If not, see <http://www.gnu.org/licenses/>.
23 */
24
25 package com.mindtree.techworks.insight.preferences.model;
26
27
28 /**
29 * To be used by the Preference and Preference Attributes to notify the manager
30 * of a change of value. The manager may then notify all interested parties
31 * about the change in value.
32 *
33 * @author Bindul Bhowmik
34 * @version $Revision: 27 $ $Date: 2007-12-16 04:58:03 -0700 (Sun, 16 Dec 2007) $
35 */
36 public interface PreferenceModelManager {
37
38 /**
39 * Operation to identify addition of a child preference
40 */
41 public static final int OPERATION_CHILD_PREF_ADDED = 1;
42
43 /**
44 * Operation to identify removal of a child preference
45 */
46 public static final int OPERATION_CHILD_PREF_REMOVED = 2;
47
48 /**
49 * Operation to identify addition of a child preference
50 */
51 public static final int OPERATION_PREF_ATTR_ADDED = 3;
52
53 /**
54 * Operation to identify removal of a child preference
55 */
56 public static final int OPERATION_PREF_ATTR_REMOVED = 4;
57
58 /**
59 * Used by the Preference to notify the manager about a change in an
60 * attribute value. Notification is always done with the
61 * {@link Preference#getCompleteId() Complete Id}of the Preference.
62 *
63 * @param preferenceId The Preference in which the value changed
64 * @param attributeId The Attribute whose value changed
65 * @param newValue The new value of the attribute
66 */
67 public void attributeValueChanged (String preferenceId, String attributeId,
68 String newValue);
69
70 /**
71 * This method is called on the Preference Model Manager by the Preference,
72 * whenever a child preference is added or deleted.
73 *
74 * @param preferenceId The current Preference id (complete id)
75 * @param childPreferenceId The preference id of the child preference
76 * @param operation Operation type, denoted by
77 * {@link PreferenceModelManager#OPERATION_CHILD_PREF_ADDED OPERATION_CHILD_PREF_ADDED}
78 * or
79 * {@link PreferenceModelManager#OPERATION_CHILD_PREF_REMOVED OPERATION_CHILD_PREF_REMOVED}
80 */
81 public void childPreferenceChanged (String preferenceId,
82 String childPreferenceId, int operation);
83
84 /**
85 * This method is called on the Preference Model Manager by the Preference,
86 * whenever a child preference is added or deleted.
87 *
88 * @param preferenceId The current Preference id (complete id)
89 * @param preferenceAttributeId The preference id of the child preference
90 * @param operation Operation type, denoted by
91 * {@link PreferenceModelManager#OPERATION_PREF_ATTR_ADDED OPERATION_PREF_ATTR_REMOVED}
92 * or
93 * {@link PreferenceModelManager#OPERATION_PREF_ATTR_REMOVED OPERATION_PREF_ATTR_REMOVED}
94 */
95 public void preferenceAttributeChanged (String preferenceId,
96 String preferenceAttributeId, int operation);
97
98 }