1/*
2 * Copyright 2015, Rene Gollent, rene@gollent.com.
3 * Distributed under the terms of the MIT License.
4 */
5
6#include "TableCellValueEditor.h"
7
8#include "Value.h"
9
10
11TableCellValueEditor::TableCellValueEditor()
12	:
13	BReferenceable(),
14	fInitialValue(NULL)
15{
16}
17
18
19TableCellValueEditor::~TableCellValueEditor()
20{
21	if (fInitialValue != NULL)
22		fInitialValue->ReleaseReference();
23}
24
25
26void
27TableCellValueEditor::AddListener(Listener* listener)
28{
29	fListeners.Add(listener);
30}
31
32
33void
34TableCellValueEditor::RemoveListener(Listener* listener)
35{
36	fListeners.Remove(listener);
37}
38
39
40void
41TableCellValueEditor::SetInitialValue(Value* value)
42{
43	if (fInitialValue != NULL)
44		fInitialValue->ReleaseReference();
45
46	fInitialValue = value;
47	if (fInitialValue != NULL)
48		fInitialValue->AcquireReference();
49}
50
51
52void
53TableCellValueEditor::NotifyEditBeginning()
54{
55	for (ListenerList::Iterator it = fListeners.GetIterator();
56			Listener* listener = it.Next();) {
57		listener->TableCellEditBeginning();
58	}
59}
60
61
62void
63TableCellValueEditor::NotifyEditCancelled()
64{
65	for (ListenerList::Iterator it = fListeners.GetIterator();
66			Listener* listener = it.Next();) {
67		listener->TableCellEditCancelled();
68	}
69}
70
71
72void
73TableCellValueEditor::NotifyEditCompleted(Value* newValue)
74{
75	for (ListenerList::Iterator it = fListeners.GetIterator();
76			Listener* listener = it.Next();) {
77		listener->TableCellEditEnded(newValue);
78	}
79}
80
81
82// #pragma mark - TableCellValueEditor::Listener
83
84
85TableCellValueEditor::Listener::~Listener()
86{
87}
88
89
90void
91TableCellValueEditor::Listener::TableCellEditBeginning()
92{
93}
94
95
96void
97TableCellValueEditor::Listener::TableCellEditCancelled()
98{
99}
100
101
102void
103TableCellValueEditor::Listener::TableCellEditEnded(Value* newValue)
104{
105}
106
107
108