1 
2 //----------------------------------------------------------------------------
3 // Copyright (c) 2004, David Burken, all rights reserved.
4 //
5 // License:  LGPL
6 //
7 // See LICENSE.txt file in the top level directory for more details.
8 //
9 // Author:  David Burken
10 //
11 // Description:
12 //
13 //----------------------------------------------------------------------------
14 // $Id: ossimConnectableDisplayListener.cpp 9094 2006-06-13 19:12:40Z dburken $
15 
16 #include <ossim/base/ossimConnectableDisplayListener.h>
17 #include <ossim/base/ossimConnectableObject.h>
18 #include <ossim/base/ossimObjectEvents.h>
19 #include <ossim/base/ossimDisplayListEvent.h>
20 #include <ossim/base/ossimDisplayRefreshEvent.h>
21 
22 #include <ossim/base/ossimNotifyContext.h>
23 
24 RTTI_DEF1(ossimConnectableDisplayListener,
25           "ossimConnectableDisplayListener",
26           ossimListener);
27 
ossimConnectableDisplayListener()28 ossimConnectableDisplayListener::ossimConnectableDisplayListener()
29    : ossimListener()
30 {}
31 
processEvent(ossimEvent & event)32 void ossimConnectableDisplayListener::processEvent(ossimEvent& event)
33 {
34    switch(event.getId())
35    {
36       case OSSIM_EVENT_OBJECT_DESTRUCTING_ID:
37       {
38          ossimObjectDestructingEvent* eventCast =
39             static_cast<ossimObjectDestructingEvent*>(&event);
40          objectDestructingEvent(*eventCast);
41 
42          break;
43       }
44       case OSSIM_EVENT_CONNECTION_CONNECT_ID:
45       case OSSIM_EVENT_CONNECTION_DISCONNECT_ID:
46       {
47          ossimConnectionEvent* eventCast =
48             static_cast<ossimConnectionEvent*>(&event);
49 
50          connectionEvent(*eventCast);
51          if(event.getId() == OSSIM_EVENT_CONNECTION_DISCONNECT_ID)
52          {
53             if(eventCast->isInputDirection())
54             {
55                disconnectInputEvent(*eventCast);
56             }
57             else if(eventCast->isOutputDirection())
58             {
59                disconnectOutputEvent(*eventCast);
60             }
61             else
62             {
63                ossimNotify(ossimNotifyLevel_WARN)
64                   << "ossimConnectableDisplayListener::processEvent, Direction not set\n";
65             }
66          }
67          else
68          {
69             ossimConnectionEvent* eventCast = static_cast<ossimConnectionEvent*>(&event);
70 
71             if(eventCast->isInputDirection())
72             {
73                connectInputEvent(*eventCast);
74             }
75             else if(eventCast->isOutputDirection())
76             {
77                connectOutputEvent(*eventCast);
78             }
79             else
80             {
81                ossimNotify(ossimNotifyLevel_WARN) << "ossimConnectableDisplayListener::processEvent, Direction not set\n";
82             }
83          }
84          break;
85       }
86       case OSSIM_EVENT_PROPERTY_ID:
87       {
88          ossimPropertyEvent* eventCast = static_cast<ossimPropertyEvent*>(&event);
89          propertyEvent(*eventCast);
90          break;
91       }
92       case OSSIM_EVENT_ADD_OBJECT_ID:
93       {
94          ossimContainerEvent* eventCast = static_cast<ossimContainerEvent*>(&event);
95          addObjectEvent(*eventCast);
96          break;
97       }
98       case OSSIM_EVENT_REMOVE_OBJECT_ID:
99       {
100          ossimContainerEvent* eventCast = static_cast<ossimContainerEvent*>(&event);
101          removeObjectEvent(*eventCast);
102          break;
103       }
104       case OSSIM_EVENT_REFRESH_ID:
105       {
106          ossimRefreshEvent* eventCast = static_cast<ossimRefreshEvent*>(&event);
107          refreshEvent(*eventCast);
108          break;
109       }
110       case OSSIM_EVENT_DISPLAY_LIST_ID:
111       {
112          ossimDisplayListEvent* eventCast =
113             static_cast<ossimDisplayListEvent*>(&event);
114          displayListEvent(*eventCast);
115          break;
116       }
117       case OSSIM_EVENT_DISPLAY_REFRESH_ID:
118       {
119          ossimDisplayRefreshEvent* eventCast =
120             static_cast<ossimDisplayRefreshEvent*>(&event);
121          displayRefreshEvent(*eventCast);
122          break;
123       }
124       default:
125       {
126          ossimListener::processEvent(event);
127          break;
128       }
129    }
130 }
131 
objectDestructingEvent(ossimObjectDestructingEvent &)132 void ossimConnectableDisplayListener::objectDestructingEvent(
133    ossimObjectDestructingEvent& /*event*/)
134 {
135 }
136 
connectionEvent(ossimConnectionEvent &)137 void ossimConnectableDisplayListener::connectionEvent(
138    ossimConnectionEvent& /* event */)
139 {}
140 
disconnectInputEvent(ossimConnectionEvent &)141 void ossimConnectableDisplayListener::disconnectInputEvent(
142    ossimConnectionEvent& /* event */)
143 {}
144 
disconnectOutputEvent(ossimConnectionEvent &)145 void ossimConnectableDisplayListener::disconnectOutputEvent(
146    ossimConnectionEvent& /* event */)
147 {}
148 
connectInputEvent(ossimConnectionEvent &)149 void ossimConnectableDisplayListener::connectInputEvent(
150    ossimConnectionEvent& /* event */)
151 {}
152 
connectOutputEvent(ossimConnectionEvent &)153 void ossimConnectableDisplayListener::connectOutputEvent(
154    ossimConnectionEvent& /* event */)
155 {}
156 
propertyEvent(ossimPropertyEvent &)157 void ossimConnectableDisplayListener::propertyEvent(
158    ossimPropertyEvent& /* event */)
159 {}
160 
displayListEvent(ossimDisplayListEvent &)161 void ossimConnectableDisplayListener::displayListEvent(ossimDisplayListEvent&)
162 {}
163 
displayRefreshEvent(ossimDisplayRefreshEvent &)164 void ossimConnectableDisplayListener::displayRefreshEvent(
165    ossimDisplayRefreshEvent&)
166 {}
167 
addObjectEvent(ossimContainerEvent &)168 void ossimConnectableDisplayListener::addObjectEvent(
169    ossimContainerEvent& /* event */)
170 {}
171 
removeObjectEvent(ossimContainerEvent &)172 void ossimConnectableDisplayListener::removeObjectEvent(
173    ossimContainerEvent& /* event */)
174 {}
175 
refreshEvent(ossimRefreshEvent &)176 void ossimConnectableDisplayListener::refreshEvent(
177    ossimRefreshEvent& /* event */)
178 {}
179 
180