source: trunk/src/org/expeditee/items/XRayable.java@ 774

Last change on this file since 774 was 774, checked in by davidb, 10 years ago

Mouse panning action updated to take into account the status of any items that are anchored, and therefore shouldn't move

File size: 5.4 KB
Line 
1package org.expeditee.items;
2
3import java.awt.Color;
4import java.awt.geom.Point2D;
5import java.util.Collection;
6import java.util.LinkedList;
7import java.util.List;
8
9import org.expeditee.gui.FrameGraphics;
10
11public abstract class XRayable extends Item {
12
13
14 protected Text _source = null;
15
16 public XRayable(Text source){
17 super();
18 _source = source;
19 source.setHidden(true);
20 source.addEnclosure(this);
21 }
22
23 public Collection<Item> getItemsToSave() {
24 Collection<Item> toSave = new LinkedList<Item>();
25 toSave.add(_source);
26 return toSave;
27 }
28
29 @Override
30 public Collection<Item> getConnected() {
31 Collection<Item> conn = super.getConnected();
32 conn.add(_source);
33 return conn;
34 }
35
36 @Override
37 public void addAllConnected(Collection<Item> connected) {
38 super.addAllConnected(connected);
39 if (!connected.contains(_source)) {
40 connected.add(_source);
41 }
42 }
43
44 /*
45 * (non-Javadoc)
46 *
47 * @see org.expeditee.items.Item#merge(org.expeditee.items.Item, int, int)
48 */
49 @Override
50 public Item merge(Item merger, int mouseX, int mouseY) {
51 return merger;
52 }
53
54 /**
55 * Returns the Text Item that was used to create this Picture object. This
56 * is required when saving the Frame.
57 *
58 * @return The Text Item used to create this Picture.
59 */
60 public Text getSource() {
61 return _source;
62 }
63
64 @Override
65 public int getID() {
66 return _source.getID();
67 }
68
69 @Override
70 public void setID(int newID) {
71 _source.setID(newID);
72 }
73
74 @Override
75 public int getY() {
76 return _source.getY();
77 }
78
79 @Override
80 public int getX() {
81 return _source.getX();
82 }
83
84 @Override
85 public Color getColor() {
86 return _source.getColor();
87 }
88
89 @Override
90 public void setColor(Color c) {
91 _source.setColor(c);
92 invalidateCommonTrait(ItemAppearence.ForegroundColorChanged);
93 }
94
95 @Override
96 public void setBackgroundColor(Color c) {
97 _source.setBackgroundColor(c);
98 }
99
100 @Override
101 public void setFillColor(Color c) {
102 _source.setFillColor(c);
103 }
104
105 @Override
106 public void setBorderColor(Color c) {
107 _source.setBorderColor(c);
108 invalidateCommonTrait(ItemAppearence.BorderColorChanged);
109 }
110
111 @Override
112 public void setGradientColor(Color c) {
113 _source.setGradientColor(c);
114 }
115
116 @Override
117 public void setTooltips(List<String> tooltips) {
118 _source.setTooltips(tooltips);
119 }
120
121 @Override
122 public void setTooltip(String tooltip) {
123 _source.setTooltip(tooltip);
124 }
125
126 @Override
127 public List<String> getTooltip() {
128 return _source.getTooltip();
129 }
130
131 @Override
132 public float getThickness() {
133 return _source.getThickness();
134 }
135
136 @Override
137 public Float getAnchorLeft() {
138 return _source.getAnchorLeft();
139 }
140
141 @Override
142 public Float getAnchorRight() {
143 return _source.getAnchorRight();
144 }
145
146 @Override
147 public Float getAnchorTop() {
148 return _source.getAnchorTop();
149 }
150
151 @Override
152 public Float getAnchorBottom() {
153 return _source.getAnchorBottom();
154 }
155
156
157 @Override
158 public Color getBorderColor() {
159 return _source.getBorderColor();
160 }
161
162 @Override
163 public void setThickness(float thick, boolean setConnected) {
164 this.invalidateCommonTrait(ItemAppearence.Thickness);
165 _source.setThickness(thick, setConnected);
166 this.invalidateCommonTrait(ItemAppearence.Thickness);
167 }
168
169 @Override
170 public Color getBackgroundColor() {
171 return _source.getBackgroundColor();
172 }
173
174 @Override
175 public Color getFillColor() {
176 return _source.getFillColor();
177 }
178
179 @Override
180 public Color getGradientColor() {
181 return _source.getGradientColor();
182 }
183
184 @Override
185 public String getFillPattern() {
186 return _source.getFillPattern();
187 }
188
189 @Override
190 public boolean hasLink() {
191 return getLink() != null;
192 }
193
194 @Override
195 public String getLink() {
196 if (_source == null)
197 return null;
198 else
199 return _source.getLink();
200 }
201
202 @Override
203 public void setLink(String frameName) {
204 if (_source == null) {
205 return;
206 }
207 if(frameName == null)
208 invalidateAll();
209 _source.setLink(frameName);
210 updatePolygon();
211 //TODO: only invalidate the link bit
212 invalidateAll();
213 }
214
215 @Override
216 public void setActions(List<String> action) {
217 if (_source == null){
218 return;
219 }
220 if(action == null || action.size() == 0)
221 invalidateAll();
222 _source.setActions(action);
223 updatePolygon();
224 invalidateAll();
225 }
226
227 @Override
228 public List<String> getAction() {
229 if (_source == null)
230 return null;
231 else
232 return _source.getAction();
233 }
234
235 @Override
236 public void translate(Point2D origin, double ratio){
237 //_source.translate(origin, ratio);
238 updatePolygon();
239 }
240
241 @Override
242 public void setPosition(float x, float y) {
243 //_source.setPosition(x, y);
244
245 }
246
247 @Override
248 public boolean isAnchored() {
249 return _source.isAnchored();
250 }
251
252 @Override
253 public void setAnchorTop(Float anchor) {
254 _source.setAnchorTop(anchor);
255 if (anchor != null)
256 _source.setY(anchor + getHeight());
257 }
258
259 @Override
260 public void setAnchorBottom(Float anchor) {
261 _source.setAnchorBottom(anchor);
262 if (anchor != null)
263 _source.setY(FrameGraphics.getMaxFrameSize().height - getHeight() - anchor);
264 }
265
266
267 @Override
268 public void setAnchorLeft(Float anchor) {
269 _source.setAnchorLeft(anchor);
270 }
271
272 @Override
273 public void setAnchorRight(Float anchor) {
274 _source.setAnchorRight(anchor);
275 }
276
277 public boolean refresh(){
278 return true;
279 }
280
281 @Override
282 public void setXY(float x, float y){
283 _source.setXY(x, y);
284 }
285
286 @Override
287 public boolean hasPermission(UserAppliedPermission p) {
288 return _source.hasPermission(p);
289 }
290
291 @Override
292 public void setPermission(PermissionPair permissionPair) {
293 _source.setPermission(permissionPair);
294 }
295}
Note: See TracBrowser for help on using the repository browser.