1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.apache.jetspeed.portlets.layout;
18
19 import org.apache.jetspeed.om.page.Fragment;
20
21 /***
22 * A LayoutEvent is used by ColumnLayout to notify its LayoutAeventListeners
23 * that there have been a change in the position of a fragment within the layout.
24 * <h3>Constant Values</h3>
25 * <ul>
26 * <li>ADDED == 0</li>
27 * <li>MOVED_UP == 1</li>
28 * <li>MOVED_DOWN == 2</li>
29 * <li>MOVED_LEFT == 3</li>
30 * <li>MOVED_RIGHT == 4</li>
31 * </ul>
32 *
33 *
34 * @author <href a="mailto:weaver@apache.org">Scott T. Weaver</a>
35 * @see org.apache.jetspeed.om.page.Fragment
36 * @see org.apache.jetspeed.portlets.layout.LayoutEventListener
37 * @see org.apache.jetspeed.portlets.layout.ColumnLayout
38 *
39 */
40 public class LayoutEvent
41 {
42 /***Event type value that notifies that a fragment has been added */
43 public static final int ADDED =0;
44 /***Event type value that notifies that a fragment has been moved up */
45 public static final int MOVED_UP = 1;
46 /***Event type value that notifies that a fragment has been moved down */
47 public static final int MOVED_DOWN = 2;
48 /***Event type value that notifies that a fragment has been moved left */
49 public static final int MOVED_LEFT = 3;
50 /***Event type value that notifies that a fragment has been moved right */
51 public static final int MOVED_RIGHT = 4;
52
53 private final int eventType;
54 private final Fragment fragment;
55 private final LayoutCoordinate originalCoordinate;
56 private final LayoutCoordinate newCoordinate;
57
58 /***
59 *
60 * @param eventType The type of event (see the event constants)
61 * @param fragment Fragment that is the target of this event.
62 * @param originalCoordinate the previous LayoutCoordinate of this Fragment
63 * @param newCoordinate the new and current coordinates of this fragment.
64 * @see org.apache.jetspeed.om.page.Fragment
65 */
66 public LayoutEvent(int eventType, Fragment fragment, LayoutCoordinate originalCoordinate, LayoutCoordinate newCoordinate)
67 {
68 super();
69 this.eventType = eventType;
70 this.fragment = fragment;
71 this.originalCoordinate = originalCoordinate;
72 this.newCoordinate = newCoordinate;
73 }
74
75
76 /***
77 * Returns the event type (see event constants)
78 * @return the event type (see event constants)
79 * @see ColumnLayout#layoutType
80 */
81 public int getEventType()
82 {
83 return eventType;
84 }
85
86 /***
87 * Returns the fragment that is the target of this event.
88 * @return Fragment the fragment that is the target of this event.
89 * @see org.apache.jetspeed.om.page.Fragment
90 */
91 public Fragment getFragment()
92 {
93 return fragment;
94 }
95
96 /***
97 * Returns the new/current coordinate of the Fragment targeted by this event.
98 * @return the new/current coordinate of the Fragment targeted by this event.
99 * @see LayoutCoordinate
100 */
101 public LayoutCoordinate getNewCoordinate()
102 {
103 return newCoordinate;
104 }
105
106 /***
107 * Returns the original (prior to the event) coordinate of the Fragment targeted by this event.
108 * @return the original (prior to the event) coordinate of the Fragment targeted by this event.
109 * @see LayoutCoordinate
110 */
111 public LayoutCoordinate getOriginalCoordinate()
112 {
113 return originalCoordinate;
114 }
115
116
117 public boolean equals(Object obj)
118 {
119 if(obj instanceof LayoutEvent)
120 {
121 LayoutEvent event = (LayoutEvent) obj;
122 return event.fragment.equals(fragment)
123 && event.eventType == eventType
124 && event.originalCoordinate.equals(originalCoordinate)
125 && event.newCoordinate.equals(newCoordinate);
126
127 }
128 else
129 {
130 return false;
131 }
132 }
133
134
135 public String toString()
136 {
137 return "event_target="+fragment.getId()+",event_type_code="+ eventType + ",orginial_coordinate="+ originalCoordinate+
138 ",new_coordinate="+newCoordinate;
139 }
140
141
142 }