svn-document-layout / trunk / org.gvsig.app.document.layout2.app / org.gvsig.app.document.layout2.app.mainplugin / src / main / java / org / gvsig / layout / mapbox / model / CellImpl.java @ 1714
History | View | Annotate | Download (4.28 KB)
1 |
/*
|
---|---|
2 |
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
|
3 |
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
|
4 |
*/
|
5 |
package org.gvsig.layout.mapbox.model; |
6 |
|
7 |
//import java.awt.Rectangle;
|
8 |
|
9 |
import java.awt.geom.Rectangle2D; |
10 |
import org.gvsig.tools.ToolsLocator; |
11 |
import org.gvsig.tools.dynobject.DynStruct; |
12 |
import org.gvsig.tools.persistence.PersistenceManager; |
13 |
import org.gvsig.tools.persistence.PersistentState; |
14 |
import org.gvsig.tools.persistence.exception.PersistenceException; |
15 |
|
16 |
|
17 |
/**
|
18 |
*
|
19 |
* @author fdiaz
|
20 |
*/
|
21 |
public class CellImpl implements Cell { |
22 |
|
23 |
public static final String PERSISTENCE_DEFINITION_NAME = "Cell"; |
24 |
|
25 |
Rectangle2D r;
|
26 |
|
27 |
public CellImpl() {
|
28 |
} |
29 |
|
30 |
public CellImpl(double x, double y, double width, double height) { |
31 |
this.r = new Rectangle2D.Double(x, y, width, height); |
32 |
} |
33 |
|
34 |
@Override
|
35 |
public Cell clone() throws CloneNotSupportedException { |
36 |
CellImpl other = (CellImpl) super.clone();
|
37 |
if(r != null) { |
38 |
other.r = (Rectangle2D) r.clone();
|
39 |
} |
40 |
return other;
|
41 |
} |
42 |
|
43 |
@Override
|
44 |
public double getX() { |
45 |
return r.getX();
|
46 |
} |
47 |
|
48 |
@Override
|
49 |
public void setX(double x) { |
50 |
((Rectangle2D.Double)this.r).x = x; |
51 |
} |
52 |
|
53 |
@Override
|
54 |
public double getY() { |
55 |
return r.getY();
|
56 |
} |
57 |
|
58 |
@Override
|
59 |
public void setY(double y) { |
60 |
((Rectangle2D.Double)this.r).y = y; |
61 |
} |
62 |
|
63 |
@Override
|
64 |
public double getWidth() { |
65 |
return r.getWidth();
|
66 |
} |
67 |
|
68 |
@Override
|
69 |
public void setWidth(double width) { |
70 |
((Rectangle2D.Double)this.r).width = width; |
71 |
} |
72 |
|
73 |
@Override
|
74 |
public double getHeight() { |
75 |
return r.getHeight();
|
76 |
} |
77 |
|
78 |
@Override
|
79 |
public void setHeight(double height) { |
80 |
((Rectangle2D.Double)this.r).height = height; |
81 |
} |
82 |
|
83 |
@Override
|
84 |
public String toString() { |
85 |
// return "y:" + this.r.y + " x:" + this.r.x + " width:" + this.r.width + " height:" + this.r.height;
|
86 |
return "("+this.r.getX()+", " + this.r.getY() + ", " + this.r.getWidth() + ", " + this.r.getHeight()+")"; |
87 |
} |
88 |
|
89 |
@Override
|
90 |
public boolean contains(double x, double y) { |
91 |
return r.contains(x, y);
|
92 |
// return(this.r.x < x && this.r.x+this.r.width > x && this.r.y < y && this.r.y+this.r.height > y);
|
93 |
} |
94 |
|
95 |
@Override
|
96 |
public boolean isContained(Rectangle2D rect) { |
97 |
return rect.contains(this.r); |
98 |
} |
99 |
|
100 |
@Override
|
101 |
public boolean intersects(Rectangle2D rect) { |
102 |
return rect.intersects(this.r); |
103 |
} |
104 |
|
105 |
@Override
|
106 |
public void join(Cell c) { |
107 |
this.r.add(((CellImpl) c).r);
|
108 |
} |
109 |
|
110 |
@Override
|
111 |
public Rectangle2D getRectangle() { |
112 |
return r;
|
113 |
} |
114 |
|
115 |
@Override
|
116 |
public boolean equals(Object o) { |
117 |
if(!(o instanceof Cell)){ |
118 |
return false; |
119 |
} |
120 |
Cell other = (Cell)o; |
121 |
return this.r.equals(other.getRectangle()); |
122 |
} |
123 |
|
124 |
@Override
|
125 |
public int hashCode() { |
126 |
return this.r.hashCode(); |
127 |
} |
128 |
|
129 |
public static void registerPersistent() { |
130 |
PersistenceManager manager = ToolsLocator.getPersistenceManager(); |
131 |
if (manager.getDefinition(PERSISTENCE_DEFINITION_NAME) == null) { |
132 |
DynStruct definition = |
133 |
manager.addDefinition(CellImpl.class, |
134 |
PERSISTENCE_DEFINITION_NAME, |
135 |
"Cell persistence definition", null, null); |
136 |
|
137 |
definition.addDynFieldDouble("x").setMandatory(true); |
138 |
definition.addDynFieldDouble("y").setMandatory(true); |
139 |
definition.addDynFieldDouble("width").setMandatory(true); |
140 |
definition.addDynFieldDouble("height").setMandatory(true); |
141 |
} |
142 |
} |
143 |
|
144 |
|
145 |
@Override
|
146 |
public void saveToState(PersistentState state) throws PersistenceException { |
147 |
state.set("x", this.r.getX()); |
148 |
state.set("y", this.r.getY()); |
149 |
state.set("width", this.r.getWidth()); |
150 |
state.set("height", this.r.getHeight()); |
151 |
} |
152 |
|
153 |
@Override
|
154 |
public void loadFromState(PersistentState state) throws PersistenceException { |
155 |
double x = state.getDouble("x"); |
156 |
double y = state.getDouble("y"); |
157 |
double width = state.getDouble("width"); |
158 |
double height = state.getDouble("height"); |
159 |
this.r = new Rectangle2D.Double(x, y, width, height); |
160 |
} |
161 |
|
162 |
|
163 |
} |