Revision 1766

View differences:

org.gvsig.legend.heatmap/trunk/org.gvsig.legend.heatmap/org.gvsig.legend.heatmap.app/org.gvsig.legend.heatmap.app.mainplugin/src/main/java/org/gvsig/legend/heatmap/app/HeatmapLegendExtension.java
1 1

  
2 2
package org.gvsig.legend.heatmap.app;
3 3

  
4
import org.gvsig.andami.IconThemeHelper;
4 5
import org.gvsig.andami.plugins.Extension;
5 6

  
6 7

  
......
8 9

  
9 10
    @Override
10 11
    public void initialize() {
12
        IconThemeHelper.registerIcon("legend", "legend-overview-vectorial-heatmap", this);
11 13
    }
12 14

  
13 15
    @Override
org.gvsig.legend.heatmap/trunk/org.gvsig.legend.heatmap/org.gvsig.legend.heatmap.app/org.gvsig.legend.heatmap.app.mainplugin/src/main/resources-plugin/i18n/text.properties
1
_Heatmap_legend_description=Mapa de calor que representa la dendidad de puntos en un mapa.
2
_Heatmap_legend=Mapa de calor
org.gvsig.legend.heatmap/trunk/org.gvsig.legend.heatmap/org.gvsig.legend.heatmap.app/org.gvsig.legend.heatmap.app.mainplugin/src/main/resources-plugin/i18n/text_en.properties
1
_Heatmap_legend_description=heat map for representing the density of dots in a map.
2
_Heatmap_legend=heat map
org.gvsig.legend.heatmap/trunk/org.gvsig.legend.heatmap/org.gvsig.legend.heatmap.lib/org.gvsig.legend.heatmap.lib.impl/src/main/java/org/gvsig/legend/heatmap/lib/impl/DefaultHeatmapLegend.java
2 2

  
3 3
import java.awt.Color;
4 4
import java.awt.Graphics2D;
5
import java.awt.Image;
5 6
import java.awt.image.BufferedImage;
6 7
import java.util.Map;
8
import org.apache.commons.lang3.StringUtils;
7 9
import org.cresques.cts.ICoordTrans;
8 10
import org.gvsig.fmap.dal.exception.DataException;
9 11
import org.gvsig.fmap.dal.feature.Feature;
......
11 13
import org.gvsig.fmap.dal.feature.FeatureSelection;
12 14
import org.gvsig.fmap.dal.feature.FeatureSet;
13 15
import org.gvsig.fmap.dal.feature.FeatureStore;
16
import org.gvsig.fmap.dal.feature.FeatureType;
14 17
import org.gvsig.fmap.geom.Geometry;
15 18
import org.gvsig.fmap.geom.primitive.Point;
16 19
import org.gvsig.fmap.mapcontext.MapContextException;
17 20
import org.gvsig.fmap.mapcontext.ViewPort;
21
import org.gvsig.fmap.mapcontext.layers.operations.IHasImageLegend;
18 22
import org.gvsig.fmap.mapcontext.rendering.legend.LegendException;
23
import org.gvsig.fmap.mapcontext.rendering.legend.events.SymbolLegendEvent;
19 24
import org.gvsig.fmap.mapcontext.rendering.symbols.ISymbol;
25
import org.gvsig.gui.ColorTablePainter;
26
import org.gvsig.gui.DefaultColorTablePainter;
20 27
import org.gvsig.legend.heatmap.lib.api.HeatmapLegend;
21 28
import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.AbstractVectorialLegend;
22 29
import org.gvsig.symbology.fmap.mapcontext.rendering.legend.impl.DefaultFeatureDrawnNotification;
......
25 32
import org.gvsig.tools.task.Cancellable;
26 33
import org.gvsig.tools.visitor.VisitCanceledException;
27 34
import org.gvsig.tools.visitor.Visitor;
28
import org.slf4j.Logger;
29
import org.slf4j.LoggerFactory;
30 35

  
31
public class DefaultHeatmapLegend extends AbstractVectorialLegend implements HeatmapLegend {
36
public class DefaultHeatmapLegend extends AbstractVectorialLegend implements HeatmapLegend, IHasImageLegend {
32 37

  
33
    protected static final Logger LOG = LoggerFactory.getLogger(DefaultHeatmapLegend.class);
34

  
35 38
    private class DensityAlgorithm {
36 39

  
37 40
        private double[][] grid;
......
88 91
        }
89 92

  
90 93
        private void addValue(int px, int py, double value) {
91
            if( px<0 || py<0 || px>=with || py>=height ) {
94
            if( px < 0 || py < 0 || px >= with || py >= height ) {
92 95
                return;
93 96
            }
94 97
            value += this.grid[px][py];
......
101 104
            }
102 105
        }
103 106

  
104
        public void draw(BufferedImage img, Color[] colorTable, Cancellable cancel) {
107
        public void draw(BufferedImage img, Graphics2D g, Color[] colorTable, int alphaHot, int alphaCold, Cancellable cancel) {
105 108
            try {
109
                Color c;
106 110
                int maxColors = colorTable.length;
111
                double deltaAlpha = (alphaHot - alphaCold) / maxColors;
107 112
                for( int x = 0; x < with; x++ ) {
108 113
                    for( int y = 0; y < height; y++ ) {
109 114
                        if( cancel.isCanceled() ) {
......
112 117
                        double value = this.grid[x][y];
113 118
                        if( value > 0 ) {
114 119
                            int icolor = (int) (value * maxColors / maxValue);
115
                            icolor = icolor<0? 0: icolor>=maxColors?maxColors-1:icolor;
116
                            Color c = colorTable[icolor];
120
                            icolor = icolor < 0 ? 0 : icolor >= maxColors ? maxColors - 1 : icolor;
121
                            if( alphaHot > 0 ) {
122
                                c = colorTable[icolor];
123
                                c = new Color(c.getRed(), c.getGreen(), c.getBlue(), (int) (icolor * deltaAlpha) & 0xff);
124
                            } else {
125
                                c = colorTable[icolor];
126
                            }
127
                            c = blend(new Color(img.getRGB(x, y)),c);
117 128
                            img.setRGB(x, y, c.getRGB());
118 129
                        }
119 130
                    }
......
122 133
                LOG.warn("Problems drawing heatmap", ex);
123 134
            }
124 135
        }
136

  
137
        private Color blend(Color dst, Color src) {
138
            //
139
            // https://en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending
140
            //
141
            // when the destination background is opaque
142
            //
143
            // double outa = 1;
144
            double srca = src.getAlpha() / 255.0;
145
            double srca_1 = (1 - srca);
146
            
147
            Color color = new Color(
148
                (int)(src.getRed()  * srca + dst.getRed()  * srca_1) & 0xff,
149
                (int)(src.getGreen()* srca + dst.getGreen()* srca_1) & 0xff,
150
                (int)(src.getBlue() * srca + dst.getBlue() * srca_1) & 0xff
151
            );
152
            return color;
153
        }
154

  
125 155
    }
126 156

  
127 157
    private final ISymbol defaultSymbol;
128 158
    private final DensityAlgorithm algorithm;
129
//    private int distance; // Pixels
159
    private boolean isRamp;
130 160
    private Color[] colorTable;
131
    private int opacity;
132

  
161
    private int colorTableHotColorAlpha;
162
    private int colorTableColdColorAlpha;
163
    private String fieldName;
164
    private boolean useAlphaInColorTable;
165
    private Image imageLegend;
166
    
133 167
    public DefaultHeatmapLegend() {
134 168
        this.defaultSymbol = new SimpleTextSymbol();
135 169
        this.algorithm = new DensityAlgorithm(30);
136
        this.opacity = 100;
137
        this.colorTable = createColorTable(100, Color.BLUE, Color.RED);
170
        this.colorTableHotColorAlpha = 255;
171
        this.colorTableColdColorAlpha = 0;
172
        this.useAlphaInColorTable = false;
173
        this.setColorTable(100, new Color(0, 0, 255, 1), new Color(255, 0, 0, 255));
174
        this.imageLegend = null;
138 175
    }
139 176

  
140 177
    @Override
141 178
    protected String[] getRequiredFeatureAttributeNames(FeatureStore featureStore) throws DataException {
179
        FeatureType ftype = featureStore.getDefaultFeatureType();
180
        if( StringUtils.isEmpty(this.fieldName) ) {
181
            return new String[]{
182
                ftype.getDefaultGeometryAttributeName()
183
            };
184
        }
142 185
        return new String[]{
143
            featureStore.getDefaultFeatureType().getDefaultGeometryAttributeName()};
186
            ftype.getDefaultGeometryAttributeName(),
187
            this.fieldName
188
        };
144 189
    }
145 190

  
146 191
    @Override
......
185 230
        this.algorithm.init(image.getWidth(), image.getHeight());
186 231
        super.draw(image, g, viewPort, cancel, scale, queryParameters, coordTrans, featureStore, featureQuery, dpi);
187 232
        if( !cancel.isCanceled() ) {
188
            this.algorithm.draw(image, this.colorTable, cancel);
233
            if( this.useRamp() || !useAlphaInColorTable ) {
234
                this.algorithm.draw(image, g, this.getColorTable(), -1, -1, cancel);
235
            } else {
236
                this.algorithm.draw(image, g, this.getColorTable(), colorTableHotColorAlpha, colorTableColdColorAlpha, cancel);
237
            }
189 238
        }
190 239
    }
191 240

  
......
201 250
        FeatureSet featureSet,
202 251
        FeatureSelection selection
203 252
    ) throws BaseException {
253
        int x = -1;
254
        if( !StringUtils.isEmpty(this.fieldName) ) {
255
            x = featureSet.getDefaultFeatureType().getIndex(this.fieldName);
256
        }
257
        final int n = x;
204 258
        featureSet.accept(new Visitor() {
205 259
            @Override
206 260
            public void visit(Object o) throws VisitCanceledException, BaseException {
......
216 270
                    }
217 271
                    Point pointPixels = (Point) pointGeo.cloneGeometry();
218 272
                    pointPixels.transform(viewPort.getAffineTransform());
219
                    algorithm.add((int) pointPixels.getX(), (int) pointPixels.getY());
273
                    if( n >= 0 ) {
274
                        double value = 0;
275
                        try {
276
                            value = feature.getDouble(n);
277
                        } catch(Exception ex) {   
278
                        }
279
                        if( value >0 ) {
280
                            algorithm.add((int) pointPixels.getX(), (int) pointPixels.getY(), value);
281
                        }
282
                    } else {
283
                        algorithm.add((int) pointPixels.getX(), (int) pointPixels.getY());
284
                    }
220 285
                }
221 286
            }
222 287
        });
223 288
    }
224 289

  
225
    private Color[] createColorTable(int elements, Color first, Color last) {
226
        Color[] table = new Color[elements];
290
    /**
291
     * @return the distance
292
     */
293
    @Override
294
    public int getDistance() {
295
        return this.algorithm.getDistance();
296
    }
227 297

  
228
        double deltaRed=(last.getRed()-first.getRed())/elements;
229
        double deltaGreen=(last.getGreen()-first.getGreen())/elements;
230
        double deltaBlue=(last.getBlue()-first.getBlue())/elements;
231
//        double deltaAlpha=(last.getAlpha()-first.getAlpha())/elements;
232
        double deltaAlpha=(255-0)/elements;
298
    /**
299
     * @param distance the distance to set
300
     */
301
    @Override
302
    public void setDistance(int distance) {
303
        this.algorithm.setDistance(distance);
304
    }
233 305

  
306
    @Override
307
    public void setColorTable(Color[] colorTable) {
308
        this.isRamp = false;
309
        this.colorTable = colorTable;
310
        this.imageLegend = null;
311
        this.fireDefaultSymbolChangedEvent(new SymbolLegendEvent(null,null));
312
    }
234 313

  
235
        for( int i = 0; i < elements; i++ ) {
236
            //Lo tuyo a pi??n fijo
237
//            table[i] = new Color(i, 0, 0, i); //, this.opacity);
314
    @Override
315
    public void setColorTable(int numColor, Color first, Color last) {
316
        Color[] table = new Color[numColor];
238 317

  
239
            //Lo m?o
240
            //FIXME: Entiendo que la opacity es la opacidad general de la capa.
318
        double deltaRed = (last.getRed() - first.getRed()) / numColor;
319
        double deltaGreen = (last.getGreen() - first.getGreen()) / numColor;
320
        double deltaBlue = (last.getBlue() - first.getBlue()) / numColor;
321
        double deltaAlpha = (last.getAlpha() - first.getAlpha()) / numColor;
322
        for( int i = 0; i < numColor; i++ ) {
241 323
            table[i] = new Color(
242 324
                (int) (first.getRed() + i * deltaRed),
243 325
                (int) (first.getGreen() + i * deltaGreen),
244 326
                (int) (first.getBlue() + i * deltaBlue),
245
//                (int) ((first.getAlpha() + i * deltaAlpha)*opacity/100)
246
                (int) (i * deltaAlpha)
327
                (int) (first.getAlpha() + i * deltaAlpha)
247 328
            );
329
        }
330
        this.isRamp = true;
331
        this.colorTable = table;
332
        this.imageLegend = null;
333
        this.fireDefaultSymbolChangedEvent(new SymbolLegendEvent(null,null));
334
    }
248 335

  
336
    @Override
337
    public Color[] getColorTable() {
338
        return this.colorTable;
339
    }
249 340

  
250
        }
251
        return table;
341
    @Override
342
    public boolean useRamp() {
343
        return this.isRamp;
252 344
    }
253 345

  
254
    /**
255
     * @return the distance
256
     */
257 346
    @Override
258
    public int getDistance() {
259
        return this.algorithm.getDistance();
347
    public String getFieldName() {
348
        return this.fieldName;
260 349
    }
261 350

  
262
    /**
263
     * @param distance the distance to set
264
     */
265 351
    @Override
266
    public void setDistance(int distance) {
267
        this.algorithm.setDistance(distance);
352
    public void setFieldName(String fieldName) {
353
        this.fieldName = fieldName;
268 354
    }
269 355

  
356
    @Override
357
    public int getColorTableHotColorAlpha() {
358
        return colorTableHotColorAlpha;
359
    }
360

  
361
    @Override
362
    public void setColorTableHotColorAlpha(int colorTableHotColorAlpha) {
363
        this.colorTableHotColorAlpha = colorTableHotColorAlpha;
364
    }
365

  
366
    @Override
367
    public int getColorTableColdColorAlpha() {
368
        return colorTableColdColorAlpha;
369
    }
370

  
371
    @Override
372
    public void setColorTableColdColorAlpha(int colorTableColdColorAlpha) {
373
        this.colorTableColdColorAlpha = colorTableColdColorAlpha;
374
    }
375

  
376
    @Override
377
    public boolean useAlphaInColorTable() {
378
        return this.useAlphaInColorTable;
379
    }
380

  
381
    @Override
382
    public boolean setUseAlphaInColorTable(boolean use) {
383
        boolean x = this.useAlphaInColorTable;
384
        this.useAlphaInColorTable = use;
385
        return x;
386
    }
387

  
388
    @Override
389
    public Image getImageLegend() {
390
        if( this.imageLegend==null ) {
391
            BufferedImage img = new BufferedImage(80, 20, BufferedImage.TYPE_INT_RGB);
392
            ColorTablePainter painter = new DefaultColorTablePainter(this.colorTable,"");
393
            Graphics2D g = img.createGraphics();
394
            g.setClip(0, 0, 150, 20);
395
            painter.paint(g, false);
396
            this.imageLegend = img;
397
        }
398
        return this.imageLegend;
399
    }
400

  
401
    @Override
402
    public String getPathImage() {
403
        return null;
404
    }
405

  
270 406
}
org.gvsig.legend.heatmap/trunk/org.gvsig.legend.heatmap/org.gvsig.legend.heatmap.lib/org.gvsig.legend.heatmap.lib.impl/pom.xml
22 22
    <dependency>
23 23
      <groupId>org.gvsig</groupId>
24 24
      <artifactId>org.gvsig.symbology.lib.impl</artifactId>
25
      <version>2.0.199</version>
26
      <type>jar</type>
25
      <scope>compile</scope>
27 26
    </dependency>
27
    <dependency>
28
      <groupId>org.gvsig</groupId>
29
      <artifactId>org.gvsig.ui</artifactId>
30
      <scope>compile</scope>
31
    </dependency>
28 32
  </dependencies>
29 33
</project>
30 34

  
org.gvsig.legend.heatmap/trunk/org.gvsig.legend.heatmap/org.gvsig.legend.heatmap.lib/org.gvsig.legend.heatmap.lib.api/src/main/java/org/gvsig/legend/heatmap/lib/api/HeatmapLegend.java
1 1
package org.gvsig.legend.heatmap.lib.api;
2 2

  
3
import java.awt.Color;
3 4
import org.gvsig.fmap.mapcontext.rendering.legend.IVectorLegend;
4 5

  
5 6
public interface HeatmapLegend extends IVectorLegend {
6 7

  
7 8
    public int getDistance();
9

  
8 10
    public void setDistance(int distance);
9
}
10 11

  
12
    public void setColorTable(Color[] colorTable);
11 13

  
14
    public void setColorTable(int numColor, Color first, Color last);
15

  
16
    public Color[] getColorTable();
17

  
18
    public boolean useRamp();
19
    
20
    public String getFieldName();
21
    
22
    public void setFieldName(String fieldName);
23
    
24
    public int getColorTableHotColorAlpha();
25

  
26
    public void setColorTableHotColorAlpha(int colorTableHotColorAlpha);
27

  
28
    public int getColorTableColdColorAlpha();
29

  
30
    public void setColorTableColdColorAlpha(int colorTableColdColorAlpha);
31

  
32
    public boolean useAlphaInColorTable();
33

  
34
    public boolean setUseAlphaInColorTable(boolean use);
35
}
12 36

  
org.gvsig.legend.heatmap/trunk/org.gvsig.legend.heatmap/org.gvsig.legend.heatmap.swing/org.gvsig.legend.heatmap.swing.impl/src/main/java/org/gvsig/legend/heatmap/swing/impl/DefaultHeatmapLegendEditorView.xml
24 24
    </at>
25 25
    <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
26 26
   </super>
27
   <at name="id">/home/jjdelcerro/datos/devel/org.gvsig.legend.aggregate/org.gvsig.legend.aggregate.swing/org.gvsig.legend.aggregate.swing.impl/src/main/java/org/gvsig/legend/aggregate/swing/impl/DefaultAggregateLegendEditorView.xml</at>
28
   <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE</at>
29
   <at name="colspecs">FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:DEFAULT:NONE</at>
27
   <at name="id">/home/jjdelcerro/datos/devel/org.gvsig.legend.heatmap/org.gvsig.legend.heatmap.swing/org.gvsig.legend.heatmap.swing.impl/src/main/java/org/gvsig/legend/heatmap/swing/impl/DefaultHeatmapLegendEditorView.xml</at>
28
   <at name="rowspecs">CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE</at>
29
   <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
30 30
   <at name="components">
31 31
    <object classname="java.util.LinkedList">
32 32
     <item >
33 33
      <at name="value">
34
       <object classname="com.jeta.forms.store.memento.FormMemento">
35
        <super classname="com.jeta.forms.store.memento.ComponentMemento">
36
         <at name="cellconstraints">
37
          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
38
           <at name="column">4</at>
39
           <at name="row">2</at>
40
           <at name="colspan">1</at>
41
           <at name="rowspan">1</at>
42
           <at name="halign">default</at>
43
           <at name="valign">default</at>
44
           <at name="insets" object="insets">0,0,0,0</at>
45
          </object>
46
         </at>
47
         <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
48
        </super>
49
        <at name="id">embedded.1959187974</at>
50
        <at name="rowspecs">CENTER:DEFAULT:NONE</at>
51
        <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
52
        <at name="components">
53
         <object classname="java.util.LinkedList">
54
          <item >
55
           <at name="value">
56
            <object classname="com.jeta.forms.store.memento.BeanMemento">
57
             <super classname="com.jeta.forms.store.memento.ComponentMemento">
58
              <at name="cellconstraints">
59
               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
60
                <at name="column">3</at>
61
                <at name="row">1</at>
62
                <at name="colspan">1</at>
63
                <at name="rowspan">1</at>
64
                <at name="halign">default</at>
65
                <at name="valign">default</at>
66
                <at name="insets" object="insets">0,0,0,0</at>
67
               </object>
68
              </at>
69
              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
70
             </super>
71
             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
72
             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
73
             <at name="beanproperties">
74
              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
75
               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
76
               <at name="properties">
77
                <object classname="com.jeta.forms.store.support.PropertyMap">
78
                 <at name="border">
79
                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
80
                   <super classname="com.jeta.forms.store.properties.BorderProperty">
81
                    <at name="name">border</at>
82
                   </super>
83
                   <at name="borders">
84
                    <object classname="java.util.LinkedList">
85
                     <item >
86
                      <at name="value">
87
                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
88
                        <super classname="com.jeta.forms.store.properties.BorderProperty">
89
                         <at name="name">border</at>
90
                        </super>
91
                       </object>
92
                      </at>
93
                     </item>
94
                    </object>
95
                   </at>
96
                  </object>
97
                 </at>
98
                 <at name="name">lblPixels</at>
99
                 <at name="width">33</at>
100
                 <at name="text">pixels</at>
101
                 <at name="fill">
102
                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
103
                   <at name="name">fill</at>
104
                  </object>
105
                 </at>
106
                 <at name="height">14</at>
107
                </object>
108
               </at>
109
              </object>
110
             </at>
111
            </object>
112
           </at>
113
          </item>
114
          <item >
115
           <at name="value">
116
            <object classname="com.jeta.forms.store.memento.BeanMemento">
117
             <super classname="com.jeta.forms.store.memento.ComponentMemento">
118
              <at name="cellconstraints">
119
               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
120
                <at name="column">1</at>
121
                <at name="row">1</at>
122
                <at name="colspan">1</at>
123
                <at name="rowspan">1</at>
124
                <at name="halign">default</at>
125
                <at name="valign">default</at>
126
                <at name="insets" object="insets">0,0,0,0</at>
127
               </object>
128
              </at>
129
              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
130
             </super>
131
             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
132
             <at name="beanclass">javax.swing.JSpinner</at>
133
             <at name="beanproperties">
134
              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
135
               <at name="classname">javax.swing.JSpinner</at>
136
               <at name="properties">
137
                <object classname="com.jeta.forms.store.support.PropertyMap">
138
                 <at name="name">spnDistance</at>
139
                 <at name="width">340</at>
140
                 <at name="height">20</at>
141
                </object>
142
               </at>
143
              </object>
144
             </at>
145
            </object>
146
           </at>
147
          </item>
148
         </object>
149
        </at>
150
        <at name="properties">
151
         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
152
          <at name="classname">com.jeta.forms.gui.form.GridView</at>
153
          <at name="properties">
154
           <object classname="com.jeta.forms.store.support.PropertyMap">
155
            <at name="border">
156
             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
157
              <super classname="com.jeta.forms.store.properties.BorderProperty">
158
               <at name="name">border</at>
159
              </super>
160
              <at name="borders">
161
               <object classname="java.util.LinkedList"/>
162
              </at>
163
             </object>
164
            </at>
165
            <at name="name"/>
166
            <at name="fill">
167
             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
168
              <at name="name">fill</at>
169
             </object>
170
            </at>
171
            <at name="scollBars">
172
             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
173
              <at name="name">scollBars</at>
174
              <at name="verticalpolicy">21</at>
175
              <at name="horizontalpolicy">31</at>
176
              <at name="border">
177
               <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
178
                <super classname="com.jeta.forms.store.properties.BorderProperty">
179
                 <at name="name">border</at>
180
                </super>
181
                <at name="borders">
182
                 <object classname="java.util.LinkedList">
183
                  <item >
184
                   <at name="value">
185
                    <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
186
                     <super classname="com.jeta.forms.store.properties.BorderProperty">
187
                      <at name="name">border</at>
188
                     </super>
189
                    </object>
190
                   </at>
191
                  </item>
192
                 </object>
193
                </at>
194
               </object>
195
              </at>
196
             </object>
197
            </at>
198
           </object>
199
          </at>
200
         </object>
201
        </at>
202
        <at name="cellpainters">
203
         <object classname="com.jeta.forms.store.support.Matrix">
204
          <at name="rows">
205
           <object classname="[Ljava.lang.Object;" size="1">
206
            <at name="item" index="0">
207
             <object classname="[Ljava.lang.Object;" size="3"/>
208
            </at>
209
           </object>
210
          </at>
211
         </object>
212
        </at>
213
        <at name="rowgroups">
214
         <object classname="com.jeta.forms.store.memento.FormGroupSet">
215
          <at name="groups">
216
           <object classname="java.util.HashMap"/>
217
          </at>
218
         </object>
219
        </at>
220
        <at name="colgroups">
221
         <object classname="com.jeta.forms.store.memento.FormGroupSet">
222
          <at name="groups">
223
           <object classname="java.util.HashMap"/>
224
          </at>
225
         </object>
226
        </at>
227
       </object>
228
      </at>
229
     </item>
230
     <item >
231
      <at name="value">
34 232
       <object classname="com.jeta.forms.store.memento.BeanMemento">
35 233
        <super classname="com.jeta.forms.store.memento.ComponentMemento">
36 234
         <at name="cellconstraints">
37 235
          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
38 236
           <at name="column">2</at>
237
           <at name="row">4</at>
238
           <at name="colspan">1</at>
239
           <at name="rowspan">1</at>
240
           <at name="halign">default</at>
241
           <at name="valign">default</at>
242
           <at name="insets" object="insets">0,0,0,0</at>
243
          </object>
244
         </at>
245
         <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
246
        </super>
247
        <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
248
        <at name="beanclass">javax.swing.JRadioButton</at>
249
        <at name="beanproperties">
250
         <object classname="com.jeta.forms.store.memento.PropertiesMemento">
251
          <at name="classname">javax.swing.JRadioButton</at>
252
          <at name="properties">
253
           <object classname="com.jeta.forms.store.support.PropertyMap">
254
            <at name="border">
255
             <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
256
              <super classname="com.jeta.forms.store.properties.BorderProperty">
257
               <at name="name">border</at>
258
              </super>
259
              <at name="borders">
260
               <object classname="java.util.LinkedList">
261
                <item >
262
                 <at name="value">
263
                  <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
264
                   <super classname="com.jeta.forms.store.properties.BorderProperty">
265
                    <at name="name">border</at>
266
                   </super>
267
                  </object>
268
                 </at>
269
                </item>
270
               </object>
271
              </at>
272
             </object>
273
            </at>
274
            <at name="actionCommand">Use color ramp</at>
275
            <at name="buttonGroup">
276
             <object classname="com.jeta.forms.store.properties.ButtonGroupProperty">
277
              <at name="name">buttonGroup</at>
278
              <at name="groupname">1</at>
279
             </object>
280
            </at>
281
            <at name="name">rdbUseColorRamp</at>
282
            <at name="width">107</at>
283
            <at name="text">Use color ramp</at>
284
            <at name="height">16</at>
285
           </object>
286
          </at>
287
         </object>
288
        </at>
289
       </object>
290
      </at>
291
     </item>
292
     <item >
293
      <at name="value">
294
       <object classname="com.jeta.forms.store.memento.BeanMemento">
295
        <super classname="com.jeta.forms.store.memento.ComponentMemento">
296
         <at name="cellconstraints">
297
          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
298
           <at name="column">2</at>
39 299
           <at name="row">2</at>
40 300
           <at name="colspan">1</at>
41 301
           <at name="rowspan">1</at>
......
74 334
             </object>
75 335
            </at>
76 336
            <at name="name">lblDistance</at>
77
            <at name="width">49</at>
337
            <at name="width">107</at>
78 338
            <at name="text">Distance</at>
79 339
            <at name="fill">
80 340
             <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
......
91 351
     </item>
92 352
     <item >
93 353
      <at name="value">
354
       <object classname="com.jeta.forms.store.memento.FormMemento">
355
        <super classname="com.jeta.forms.store.memento.ComponentMemento">
356
         <at name="cellconstraints">
357
          <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
358
           <at name="column">2</at>
359
           <at name="row">6</at>
360
           <at name="colspan">3</at>
361
           <at name="rowspan">1</at>
362
           <at name="halign">default</at>
363
           <at name="valign">default</at>
364
           <at name="insets" object="insets">0,0,0,0</at>
365
          </object>
366
         </at>
367
         <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
368
        </super>
369
        <at name="id">embedded.571437969</at>
370
        <at name="rowspecs">CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE</at>
371
        <at name="colspecs">FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:NONE,FILL:DEFAULT:GROW(1.0)</at>
372
        <at name="components">
373
         <object classname="java.util.LinkedList">
374
          <item >
375
           <at name="value">
376
            <object classname="com.jeta.forms.store.memento.BeanMemento">
377
             <super classname="com.jeta.forms.store.memento.ComponentMemento">
378
              <at name="cellconstraints">
379
               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
380
                <at name="column">2</at>
381
                <at name="row">3</at>
382
                <at name="colspan">1</at>
383
                <at name="rowspan">1</at>
384
                <at name="halign">default</at>
385
                <at name="valign">default</at>
386
                <at name="insets" object="insets">0,0,0,0</at>
387
               </object>
388
              </at>
389
              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
390
             </super>
391
             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
392
             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
393
             <at name="beanproperties">
394
              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
395
               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
396
               <at name="properties">
397
                <object classname="com.jeta.forms.store.support.PropertyMap">
398
                 <at name="border">
399
                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
400
                   <super classname="com.jeta.forms.store.properties.BorderProperty">
401
                    <at name="name">border</at>
402
                   </super>
403
                   <at name="borders">
404
                    <object classname="java.util.LinkedList">
405
                     <item >
406
                      <at name="value">
407
                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
408
                        <super classname="com.jeta.forms.store.properties.BorderProperty">
409
                         <at name="name">border</at>
410
                        </super>
411
                       </object>
412
                      </at>
413
                     </item>
414
                    </object>
415
                   </at>
416
                  </object>
417
                 </at>
418
                 <at name="name">lblHotColor</at>
419
                 <at name="width">99</at>
420
                 <at name="text">Hot color</at>
421
                 <at name="fill">
422
                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
423
                   <at name="name">fill</at>
424
                  </object>
425
                 </at>
426
                 <at name="height">14</at>
427
                </object>
428
               </at>
429
              </object>
430
             </at>
431
            </object>
432
           </at>
433
          </item>
434
          <item >
435
           <at name="value">
436
            <object classname="com.jeta.forms.store.memento.BeanMemento">
437
             <super classname="com.jeta.forms.store.memento.ComponentMemento">
438
              <at name="cellconstraints">
439
               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
440
                <at name="column">2</at>
441
                <at name="row">5</at>
442
                <at name="colspan">1</at>
443
                <at name="rowspan">1</at>
444
                <at name="halign">default</at>
445
                <at name="valign">default</at>
446
                <at name="insets" object="insets">0,0,0,0</at>
447
               </object>
448
              </at>
449
              <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
450
             </super>
451
             <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
452
             <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
453
             <at name="beanproperties">
454
              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
455
               <at name="classname">com.jeta.forms.components.label.JETALabel</at>
456
               <at name="properties">
457
                <object classname="com.jeta.forms.store.support.PropertyMap">
458
                 <at name="border">
459
                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
460
                   <super classname="com.jeta.forms.store.properties.BorderProperty">
461
                    <at name="name">border</at>
462
                   </super>
463
                   <at name="borders">
464
                    <object classname="java.util.LinkedList">
465
                     <item >
466
                      <at name="value">
467
                       <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
468
                        <super classname="com.jeta.forms.store.properties.BorderProperty">
469
                         <at name="name">border</at>
470
                        </super>
471
                       </object>
472
                      </at>
473
                     </item>
474
                    </object>
475
                   </at>
476
                  </object>
477
                 </at>
478
                 <at name="name">lblColdColor</at>
479
                 <at name="width">99</at>
480
                 <at name="text">Cold color</at>
481
                 <at name="fill">
482
                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
483
                   <at name="name">fill</at>
484
                  </object>
485
                 </at>
486
                 <at name="height">14</at>
487
                </object>
488
               </at>
489
              </object>
490
             </at>
491
            </object>
492
           </at>
493
          </item>
494
          <item >
495
           <at name="value">
496
            <object classname="com.jeta.forms.store.memento.FormMemento">
497
             <super classname="com.jeta.forms.store.memento.ComponentMemento">
498
              <at name="cellconstraints">
499
               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
500
                <at name="column">4</at>
501
                <at name="row">3</at>
502
                <at name="colspan">1</at>
503
                <at name="rowspan">1</at>
504
                <at name="halign">default</at>
505
                <at name="valign">default</at>
506
                <at name="insets" object="insets">0,0,0,0</at>
507
               </object>
508
              </at>
509
              <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
510
             </super>
511
             <at name="id">embedded.619806757</at>
512
             <at name="rowspecs">CENTER:DEFAULT:NONE</at>
513
             <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,LEFT:DEFAULT:NONE</at>
514
             <at name="components">
515
              <object classname="java.util.LinkedList">
516
               <item >
517
                <at name="value">
518
                 <object classname="com.jeta.forms.store.memento.BeanMemento">
519
                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
520
                   <at name="cellconstraints">
521
                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
522
                     <at name="column">1</at>
523
                     <at name="row">1</at>
524
                     <at name="colspan">1</at>
525
                     <at name="rowspan">1</at>
526
                     <at name="halign">default</at>
527
                     <at name="valign">default</at>
528
                     <at name="insets" object="insets">0,0,0,0</at>
529
                    </object>
530
                   </at>
531
                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
532
                  </super>
533
                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
534
                  <at name="beanclass">javax.swing.JTextField</at>
535
                  <at name="beanproperties">
536
                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
537
                    <at name="classname">javax.swing.JTextField</at>
538
                    <at name="properties">
539
                     <object classname="com.jeta.forms.store.support.PropertyMap">
540
                      <at name="border">
541
                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
542
                        <super classname="com.jeta.forms.store.properties.BorderProperty">
543
                         <at name="name">border</at>
544
                        </super>
545
                        <at name="borders">
546
                         <object classname="java.util.LinkedList">
547
                          <item >
548
                           <at name="value">
549
                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
550
                             <super classname="com.jeta.forms.store.properties.BorderProperty">
551
                              <at name="name">border</at>
552
                             </super>
553
                            </object>
554
                           </at>
555
                          </item>
556
                         </object>
557
                        </at>
558
                       </object>
559
                      </at>
560
                      <at name="horizontalAlignment">4</at>
561
                      <at name="background" object="color">236,233,216</at>
562
                      <at name="editable">false</at>
563
                      <at name="name">txtHotColorLabel</at>
564
                      <at name="width">63</at>
565
                      <at name="height">20</at>
566
                     </object>
567
                    </at>
568
                   </object>
569
                  </at>
570
                 </object>
571
                </at>
572
               </item>
573
               <item >
574
                <at name="value">
575
                 <object classname="com.jeta.forms.store.memento.BeanMemento">
576
                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
577
                   <at name="cellconstraints">
578
                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
579
                     <at name="column">3</at>
580
                     <at name="row">1</at>
581
                     <at name="colspan">1</at>
582
                     <at name="rowspan">1</at>
583
                     <at name="halign">default</at>
584
                     <at name="valign">default</at>
585
                     <at name="insets" object="insets">0,0,0,0</at>
586
                    </object>
587
                   </at>
588
                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
589
                  </super>
590
                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
591
                  <at name="beanclass">javax.swing.JButton</at>
592
                  <at name="beanproperties">
593
                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
594
                    <at name="classname">javax.swing.JButton</at>
595
                    <at name="properties">
596
                     <object classname="com.jeta.forms.store.support.PropertyMap">
597
                      <at name="border">
598
                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
599
                        <super classname="com.jeta.forms.store.properties.BorderProperty">
600
                         <at name="name">border</at>
601
                        </super>
602
                        <at name="borders">
603
                         <object classname="java.util.LinkedList">
604
                          <item >
605
                           <at name="value">
606
                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
607
                             <super classname="com.jeta.forms.store.properties.BorderProperty">
608
                              <at name="name">border</at>
609
                             </super>
610
                            </object>
611
                           </at>
612
                          </item>
613
                         </object>
614
                        </at>
615
                       </object>
616
                      </at>
617
                      <at name="actionCommand">...</at>
618
                      <at name="name">btnHotColor</at>
619
                      <at name="width">44</at>
620
                      <at name="text">...</at>
621
                      <at name="height">22</at>
622
                     </object>
623
                    </at>
624
                   </object>
625
                  </at>
626
                 </object>
627
                </at>
628
               </item>
629
               <item >
630
                <at name="value">
631
                 <object classname="com.jeta.forms.store.memento.BeanMemento">
632
                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
633
                   <at name="cellconstraints">
634
                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
635
                     <at name="column">5</at>
636
                     <at name="row">1</at>
637
                     <at name="colspan">1</at>
638
                     <at name="rowspan">1</at>
639
                     <at name="halign">default</at>
640
                     <at name="valign">default</at>
641
                     <at name="insets" object="insets">0,0,0,0</at>
642
                    </object>
643
                   </at>
644
                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
645
                  </super>
646
                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
647
                  <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
648
                  <at name="beanproperties">
649
                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
650
                    <at name="classname">com.jeta.forms.components.label.JETALabel</at>
651
                    <at name="properties">
652
                     <object classname="com.jeta.forms.store.support.PropertyMap">
653
                      <at name="border">
654
                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
655
                        <super classname="com.jeta.forms.store.properties.BorderProperty">
656
                         <at name="name">border</at>
657
                        </super>
658
                        <at name="borders">
659
                         <object classname="java.util.LinkedList">
660
                          <item >
661
                           <at name="value">
662
                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
663
                             <super classname="com.jeta.forms.store.properties.BorderProperty">
664
                              <at name="name">border</at>
665
                             </super>
666
                            </object>
667
                           </at>
668
                          </item>
669
                         </object>
670
                        </at>
671
                       </object>
672
                      </at>
673
                      <at name="name">lblHotColorAlpha</at>
674
                      <at name="width">31</at>
675
                      <at name="text">Alpha</at>
676
                      <at name="fill">
677
                       <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
678
                        <at name="name">fill</at>
679
                       </object>
680
                      </at>
681
                      <at name="height">14</at>
682
                     </object>
683
                    </at>
684
                   </object>
685
                  </at>
686
                 </object>
687
                </at>
688
               </item>
689
               <item >
690
                <at name="value">
691
                 <object classname="com.jeta.forms.store.memento.BeanMemento">
692
                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
693
                   <at name="cellconstraints">
694
                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
695
                     <at name="column">7</at>
696
                     <at name="row">1</at>
697
                     <at name="colspan">1</at>
698
                     <at name="rowspan">1</at>
699
                     <at name="halign">default</at>
700
                     <at name="valign">default</at>
701
                     <at name="insets" object="insets">0,0,0,0</at>
702
                    </object>
703
                   </at>
704
                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
705
                  </super>
706
                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
707
                  <at name="beanclass">javax.swing.JSlider</at>
708
                  <at name="beanproperties">
709
                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
710
                    <at name="classname">javax.swing.JSlider</at>
711
                    <at name="properties">
712
                     <object classname="com.jeta.forms.store.support.PropertyMap">
713
                      <at name="border">
714
                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
715
                        <super classname="com.jeta.forms.store.properties.BorderProperty">
716
                         <at name="name">border</at>
717
                        </super>
718
                        <at name="borders">
719
                         <object classname="java.util.LinkedList">
720
                          <item >
721
                           <at name="value">
722
                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
723
                             <super classname="com.jeta.forms.store.properties.BorderProperty">
724
                              <at name="name">border</at>
725
                             </super>
726
                            </object>
727
                           </at>
728
                          </item>
729
                         </object>
730
                        </at>
731
                       </object>
732
                      </at>
733
                      <at name="name">sldHotColorAlpha</at>
734
                      <at name="width">200</at>
735
                      <at name="maximum">255</at>
736
                      <at name="majorTickSpacing">20</at>
737
                      <at name="value">255</at>
738
                      <at name="height">16</at>
739
                     </object>
740
                    </at>
741
                   </object>
742
                  </at>
743
                 </object>
744
                </at>
745
               </item>
746
              </object>
747
             </at>
748
             <at name="properties">
749
              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
750
               <at name="classname">com.jeta.forms.gui.form.GridView</at>
751
               <at name="properties">
752
                <object classname="com.jeta.forms.store.support.PropertyMap">
753
                 <at name="border">
754
                  <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
755
                   <super classname="com.jeta.forms.store.properties.BorderProperty">
756
                    <at name="name">border</at>
757
                   </super>
758
                   <at name="borders">
759
                    <object classname="java.util.LinkedList"/>
760
                   </at>
761
                  </object>
762
                 </at>
763
                 <at name="name"/>
764
                 <at name="fill">
765
                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
766
                   <at name="name">fill</at>
767
                  </object>
768
                 </at>
769
                 <at name="scollBars">
770
                  <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
771
                   <at name="name">scollBars</at>
772
                   <at name="verticalpolicy">21</at>
773
                   <at name="horizontalpolicy">31</at>
774
                   <at name="border">
775
                    <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
776
                     <super classname="com.jeta.forms.store.properties.BorderProperty">
777
                      <at name="name">border</at>
778
                     </super>
779
                     <at name="borders">
780
                      <object classname="java.util.LinkedList">
781
                       <item >
782
                        <at name="value">
783
                         <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
784
                          <super classname="com.jeta.forms.store.properties.BorderProperty">
785
                           <at name="name">border</at>
786
                          </super>
787
                         </object>
788
                        </at>
789
                       </item>
790
                      </object>
791
                     </at>
792
                    </object>
793
                   </at>
794
                  </object>
795
                 </at>
796
                </object>
797
               </at>
798
              </object>
799
             </at>
800
             <at name="cellpainters">
801
              <object classname="com.jeta.forms.store.support.Matrix">
802
               <at name="rows">
803
                <object classname="[Ljava.lang.Object;" size="1">
804
                 <at name="item" index="0">
805
                  <object classname="[Ljava.lang.Object;" size="7"/>
806
                 </at>
807
                </object>
808
               </at>
809
              </object>
810
             </at>
811
             <at name="rowgroups">
812
              <object classname="com.jeta.forms.store.memento.FormGroupSet">
813
               <at name="groups">
814
                <object classname="java.util.HashMap"/>
815
               </at>
816
              </object>
817
             </at>
818
             <at name="colgroups">
819
              <object classname="com.jeta.forms.store.memento.FormGroupSet">
820
               <at name="groups">
821
                <object classname="java.util.HashMap"/>
822
               </at>
823
              </object>
824
             </at>
825
            </object>
826
           </at>
827
          </item>
828
          <item >
829
           <at name="value">
830
            <object classname="com.jeta.forms.store.memento.FormMemento">
831
             <super classname="com.jeta.forms.store.memento.ComponentMemento">
832
              <at name="cellconstraints">
833
               <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
834
                <at name="column">4</at>
835
                <at name="row">5</at>
836
                <at name="colspan">1</at>
837
                <at name="rowspan">1</at>
838
                <at name="halign">default</at>
839
                <at name="valign">default</at>
840
                <at name="insets" object="insets">0,0,0,0</at>
841
               </object>
842
              </at>
843
              <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
844
             </super>
845
             <at name="id">embedded.1580221449</at>
846
             <at name="rowspecs">CENTER:DEFAULT:NONE</at>
847
             <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,LEFT:DEFAULT:NONE</at>
848
             <at name="components">
849
              <object classname="java.util.LinkedList">
850
               <item >
851
                <at name="value">
852
                 <object classname="com.jeta.forms.store.memento.BeanMemento">
853
                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
854
                   <at name="cellconstraints">
855
                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
856
                     <at name="column">3</at>
857
                     <at name="row">1</at>
858
                     <at name="colspan">1</at>
859
                     <at name="rowspan">1</at>
860
                     <at name="halign">default</at>
861
                     <at name="valign">default</at>
862
                     <at name="insets" object="insets">0,0,0,0</at>
863
                    </object>
864
                   </at>
865
                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
866
                  </super>
867
                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
868
                  <at name="beanclass">javax.swing.JButton</at>
869
                  <at name="beanproperties">
870
                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
871
                    <at name="classname">javax.swing.JButton</at>
872
                    <at name="properties">
873
                     <object classname="com.jeta.forms.store.support.PropertyMap">
874
                      <at name="border">
875
                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
876
                        <super classname="com.jeta.forms.store.properties.BorderProperty">
877
                         <at name="name">border</at>
878
                        </super>
879
                        <at name="borders">
880
                         <object classname="java.util.LinkedList">
881
                          <item >
882
                           <at name="value">
883
                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
884
                             <super classname="com.jeta.forms.store.properties.BorderProperty">
885
                              <at name="name">border</at>
886
                             </super>
887
                            </object>
888
                           </at>
889
                          </item>
890
                         </object>
891
                        </at>
892
                       </object>
893
                      </at>
894
                      <at name="actionCommand">...</at>
895
                      <at name="name">btnColdColor</at>
896
                      <at name="width">44</at>
897
                      <at name="text">...</at>
898
                      <at name="height">22</at>
899
                     </object>
900
                    </at>
901
                   </object>
902
                  </at>
903
                 </object>
904
                </at>
905
               </item>
906
               <item >
907
                <at name="value">
908
                 <object classname="com.jeta.forms.store.memento.BeanMemento">
909
                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
910
                   <at name="cellconstraints">
911
                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
912
                     <at name="column">5</at>
913
                     <at name="row">1</at>
914
                     <at name="colspan">1</at>
915
                     <at name="rowspan">1</at>
916
                     <at name="halign">default</at>
917
                     <at name="valign">default</at>
918
                     <at name="insets" object="insets">0,0,0,0</at>
919
                    </object>
920
                   </at>
921
                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
922
                  </super>
923
                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
924
                  <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
925
                  <at name="beanproperties">
926
                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
927
                    <at name="classname">com.jeta.forms.components.label.JETALabel</at>
928
                    <at name="properties">
929
                     <object classname="com.jeta.forms.store.support.PropertyMap">
930
                      <at name="border">
931
                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
932
                        <super classname="com.jeta.forms.store.properties.BorderProperty">
933
                         <at name="name">border</at>
934
                        </super>
935
                        <at name="borders">
936
                         <object classname="java.util.LinkedList">
937
                          <item >
938
                           <at name="value">
939
                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
940
                             <super classname="com.jeta.forms.store.properties.BorderProperty">
941
                              <at name="name">border</at>
942
                             </super>
943
                            </object>
944
                           </at>
945
                          </item>
946
                         </object>
947
                        </at>
948
                       </object>
949
                      </at>
950
                      <at name="name">lblColdColorAlpha</at>
951
                      <at name="width">31</at>
952
                      <at name="text">Alpha</at>
953
                      <at name="fill">
954
                       <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
955
                        <at name="name">fill</at>
956
                       </object>
957
                      </at>
958
                      <at name="height">14</at>
959
                     </object>
960
                    </at>
961
                   </object>
962
                  </at>
963
                 </object>
964
                </at>
965
               </item>
966
               <item >
967
                <at name="value">
968
                 <object classname="com.jeta.forms.store.memento.BeanMemento">
969
                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
970
                   <at name="cellconstraints">
971
                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
972
                     <at name="column">7</at>
973
                     <at name="row">1</at>
974
                     <at name="colspan">1</at>
975
                     <at name="rowspan">1</at>
976
                     <at name="halign">default</at>
977
                     <at name="valign">default</at>
978
                     <at name="insets" object="insets">0,0,0,0</at>
979
                    </object>
980
                   </at>
981
                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
982
                  </super>
983
                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
984
                  <at name="beanclass">javax.swing.JSlider</at>
985
                  <at name="beanproperties">
986
                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
987
                    <at name="classname">javax.swing.JSlider</at>
988
                    <at name="properties">
989
                     <object classname="com.jeta.forms.store.support.PropertyMap">
990
                      <at name="border">
991
                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
992
                        <super classname="com.jeta.forms.store.properties.BorderProperty">
993
                         <at name="name">border</at>
994
                        </super>
995
                        <at name="borders">
996
                         <object classname="java.util.LinkedList">
997
                          <item >
998
                           <at name="value">
999
                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
1000
                             <super classname="com.jeta.forms.store.properties.BorderProperty">
1001
                              <at name="name">border</at>
1002
                             </super>
1003
                            </object>
1004
                           </at>
1005
                          </item>
1006
                         </object>
1007
                        </at>
1008
                       </object>
1009
                      </at>
1010
                      <at name="name">sldColdColorAlpha</at>
1011
                      <at name="width">200</at>
1012
                      <at name="maximum">255</at>
1013
                      <at name="majorTickSpacing">20</at>
1014
                      <at name="value">0</at>
1015
                      <at name="height">16</at>
1016
                     </object>
1017
                    </at>
1018
                   </object>
1019
                  </at>
1020
                 </object>
1021
                </at>
1022
               </item>
1023
               <item >
1024
                <at name="value">
1025
                 <object classname="com.jeta.forms.store.memento.BeanMemento">
1026
                  <super classname="com.jeta.forms.store.memento.ComponentMemento">
1027
                   <at name="cellconstraints">
1028
                    <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
1029
                     <at name="column">1</at>
1030
                     <at name="row">1</at>
1031
                     <at name="colspan">1</at>
1032
                     <at name="rowspan">1</at>
1033
                     <at name="halign">default</at>
1034
                     <at name="valign">default</at>
1035
                     <at name="insets" object="insets">0,0,0,0</at>
1036
                    </object>
1037
                   </at>
1038
                   <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
1039
                  </super>
1040
                  <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
1041
                  <at name="beanclass">javax.swing.JTextField</at>
1042
                  <at name="beanproperties">
1043
                   <object classname="com.jeta.forms.store.memento.PropertiesMemento">
1044
                    <at name="classname">javax.swing.JTextField</at>
1045
                    <at name="properties">
1046
                     <object classname="com.jeta.forms.store.support.PropertyMap">
1047
                      <at name="border">
1048
                       <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
1049
                        <super classname="com.jeta.forms.store.properties.BorderProperty">
1050
                         <at name="name">border</at>
1051
                        </super>
1052
                        <at name="borders">
1053
                         <object classname="java.util.LinkedList">
1054
                          <item >
1055
                           <at name="value">
1056
                            <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
1057
                             <super classname="com.jeta.forms.store.properties.BorderProperty">
1058
                              <at name="name">border</at>
1059
                             </super>
1060
                            </object>
1061
                           </at>
1062
                          </item>
1063
                         </object>
1064
                        </at>
1065
                       </object>
1066
                      </at>
1067
                      <at name="horizontalAlignment">4</at>
1068
                      <at name="background" object="color">236,233,216</at>
1069
                      <at name="editable">false</at>
1070
                      <at name="name">txtColdColorLabel</at>
1071
                      <at name="width">63</at>
1072
                      <at name="height">20</at>
1073
                     </object>
1074
                    </at>
1075
                   </object>
1076
                  </at>
1077
                 </object>
1078
                </at>
1079
               </item>
1080
              </object>
1081
             </at>
1082
             <at name="properties">
1083
              <object classname="com.jeta.forms.store.memento.PropertiesMemento">
1084
               <at name="classname">com.jeta.forms.gui.form.GridView</at>
1085
               <at name="properties">
1086
                <object classname="com.jeta.forms.store.support.PropertyMap">
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff