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

Last change on this file since 737 was 737, checked in by jts21, 10 years ago

Enable per-item permission values, and tidy up DefaultFrameWriter a little

File size: 5.3 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 void setAnchorTop(Float anchor) {
249 _source.setAnchorTop(anchor);
250 if (anchor != null)
251 _source.setY(anchor + getHeight());
252 }
253
254 @Override
255 public void setAnchorBottom(Float anchor) {
256 _source.setAnchorBottom(anchor);
257 if (anchor != null)
258 _source.setY(FrameGraphics.getMaxFrameSize().height - getHeight() - anchor);
259 }
260
261
262 @Override
263 public void setAnchorLeft(Float anchor) {
264 _source.setAnchorLeft(anchor);
265 }
266
267 @Override
268 public void setAnchorRight(Float anchor) {
269 _source.setAnchorRight(anchor);
270 }
271
272 public boolean refresh(){
273 return true;
274 }
275
276 @Override
277 public void setXY(float x, float y){
278 _source.setXY(x, y);
279 }
280
281 @Override
282 public boolean hasPermission(UserAppliedPermission p) {
283 return _source.hasPermission(p);
284 }
285
286 @Override
287 public void setPermission(PermissionPair permissionPair) {
288 _source.setPermission(permissionPair);
289 }
290}
Note: See TracBrowser for help on using the repository browser.