Revision 45326

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.api/src/main/java/org/gvsig/fmap/dal/swing/searchpanel/FeatureStoreSearchPanel.java
22 22
    public static final int DEFAULT_WIDTH = 700;
23 23
    public static final int DEFAULT_HEIGHT = 450;
24 24
    
25
    public static final int NOT_HANDLE_NULL = 0;
26
    public static final int NULL_AS_TRUE = 1;
27
    public static final int NULL_AS_FALSE = 2;
28
    
25 29
    public void clear();
26 30
    
27 31
    public void setEnabled(boolean enabled);
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/pom.xml
109 109
            <scope>compile</scope>
110 110
            <!--<version>1.7</version>-->
111 111
        </dependency>
112
        <dependency>
113
            <groupId>org.gvsig</groupId>
114
            <artifactId>org.gvsig.tools.swing.impl</artifactId>
115
            <scope>compile</scope>
116
        </dependency>
112 117

  
113 118
        <dependency>
114 119
            <groupId>org.gvsig</groupId>
......
162 167
        </dependency>
163 168
        <dependency>
164 169
            <groupId>org.gvsig</groupId>
165
            <artifactId>org.gvsig.tools.swing.impl</artifactId>
166
            <scope>test</scope>
167
        </dependency>
168
        <dependency>
169
            <groupId>org.gvsig</groupId>
170 170
            <artifactId>org.gvsig.fmap.dal.impl</artifactId>
171 171
            <scope>runtime</scope>
172 172
        </dependency>
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanel.java
22 22
import java.util.List;
23 23
import java.util.Map;
24 24
import java.util.Objects;
25
import java.util.logging.Level;
26 25
import javax.swing.AbstractAction;
27 26
import javax.swing.Action;
28 27
import static javax.swing.Action.ACTION_COMMAND_KEY;
......
489 488
                        lblExtraFields1,
490 489
                        lblRelationalOperator1,
491 490
                        cboValue1,
491
                        lblNull1,
492 492
                        lblLogicalOperators1,
493 493
                        lblField2,
494 494
                        lblExtraFields2,
495 495
                        lblRelationalOperator2,
496 496
                        cboValue2,
497
                        lblNull2,
497 498
                        lblLogicalOperators2,
498 499
                        lblField3,
499 500
                        lblExtraFields3,
500 501
                        lblRelationalOperator3,
501 502
                        cboValue3,
503
                        lblNull3,
502 504
                        lblLogicalOperators3,
503 505
                        lblField4,
504 506
                        lblExtraFields4,
505 507
                        lblRelationalOperator4,
506 508
                        cboValue4,
509
                        lblNull4,
507 510
                        null
508 511
                )
509 512
        );
......
1201 1204
            new String[]{"dalswing", "search-action-showform"},
1202 1205
            new String[]{"dalswing", "search-action-select"},
1203 1206
            new String[]{"dalswing", "search-action-select-add"},
1204
            new String[]{"dalswing", "search-action-select-filter"}
1207
            new String[]{"dalswing", "search-action-select-filter"},        
1208
            new String[]{"dalswing", "search-nullbehavior-null"},
1209
            new String[]{"dalswing", "search-nullbehavior-true"},
1210
            new String[]{"dalswing", "search-nullbehavior-false2"}
1211
       
1205 1212
        };
1206 1213
        IconTheme theme = ToolsSwingLocator.getIconThemeManager().getCurrent();
1207 1214
        for (String[] icon : iconNames) {
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchParameters.java
130 130
        try {
131 131
            this.searchMode = state.getInt("searchMode");
132 132
        } catch(Exception ex) {
133
            this.searchMode = 0;
133
            this.searchMode = DefaultSearchPanel.PANEL_SIMPLIFIED;
134 134
        }
135 135
    }
136 136

  
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/SearchConditionPanelAdvanced.java
1 1
package org.gvsig.fmap.dal.swing.impl.searchpanel;
2 2

  
3
import java.util.logging.Level;
4
import java.util.logging.Logger;
5 3
import javax.swing.JButton;
6 4
import javax.swing.JComponent;
7 5
import javax.swing.event.ChangeListener;
......
34 32

  
35 33
    @Override
36 34
    public void put(SearchParameters params) {
37
        Expression filter;
38
        try {
39
            filter = params.getQuery().getExpressionFilter().clone();
40
        } catch (CloneNotSupportedException ex) {
41
            throw new RuntimeException("Not able to clone advanced parameters", ex);
35
        Expression filter = null;
36
        if (params.getQuery().getExpressionFilter()!=null) {
37
            try {
38
                filter = params.getQuery().getExpressionFilter().clone();
39
            } catch (CloneNotSupportedException ex) {
40
                throw new RuntimeException("Not able to clone advanced parameters", ex);
41
            }
42 42
        }
43 43
        this.set(filter);
44 44
    }
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/SearchConditionPanelSimplified.java
116 116
            JLabel lblExtraFields1,
117 117
            JLabel lblRelationalOperator1,
118 118
            JComboBox cboValue1,
119
            JLabel lblNull1,
119 120
            JLabel lblLogicalOperators1,
120 121
            JLabel lblField2,
121 122
            JLabel lblExtraFields2,
122 123
            JLabel lblRelationalOperator2,
123 124
            JComboBox cboValue2,
125
            JLabel lblNull2,
124 126
            JLabel lblLogicalOperators2,
125 127
            JLabel lblField3,
126 128
            JLabel lblExtraFields3,
127 129
            JLabel lblRelationalOperator3,
128 130
            JComboBox cboValue3,
131
            JLabel lblNull3,
129 132
            JLabel lblLogicalOperators3,
130 133
            JLabel lblField4,
131 134
            JLabel lblExtraFields4,
132 135
            JLabel lblRelationalOperator4,
133 136
            JComboBox cboValue4,
137
            JLabel lblNull4,
134 138
            JLabel lblLogicalOperators4
135 139
    ) {
136 140
        this.changeListenerHelper = ToolsSwingLocator.getToolsSwingManager().createChangeListenerHelper();
......
143 147
                lblExtraFields1,
144 148
                lblRelationalOperator1,
145 149
                cboValue1,
150
                lblNull1,
146 151
                lblLogicalOperators1
147 152
        );
148 153
        this.searchFieldsControllers.add(controller);
......
153 158
                lblExtraFields2,
154 159
                lblRelationalOperator2,
155 160
                cboValue2,
161
                lblNull2,
156 162
                lblLogicalOperators2
157 163
        );
158 164
        this.searchFieldsControllers.add(controller);
......
163 169
                lblExtraFields3,
164 170
                lblRelationalOperator3,
165 171
                cboValue3,
172
                lblNull3,
166 173
                lblLogicalOperators3
167 174
        );
168 175
        this.searchFieldsControllers.add(controller);
......
173 180
                lblExtraFields4,
174 181
                lblRelationalOperator4,
175 182
                cboValue4,
183
                lblNull4,
176 184
                null
177 185
        );
178 186
        this.searchFieldsControllers.add(controller);
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanelView.xml
25 25
    <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
26 26
   </super>
27 27
   <at name="id">/home/omartinez/devel/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanelView.xml</at>
28
   <at name="path">devel/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/DefaultSearchPanelView.xml</at>
29 28
   <at name="rowspecs">CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE</at>
30 29
   <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE</at>
31 30
   <at name="components">
......
114 113
                      </at>
115 114
                      <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
116 115
                     </super>
117
                     <at name="id">embedded.1593528664</at>
116
                     <at name="id">embedded.2076350997</at>
118 117
                     <at name="rowspecs">CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:4DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE</at>
119 118
                     <at name="colspecs">FILL:4DLU:NONE,FILL:12DLU:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:12DLU:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:12DLU:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:12DLU:GROW(1.0),FILL:DEFAULT:NONE,FILL:4DLU:NONE</at>
120 119
                     <at name="components">
......
167 166
                              <at name="editable">true</at>
168 167
                              <at name="requestFocusEnabled">false</at>
169 168
                              <at name="name">cboValue1</at>
170
                              <at name="width">164</at>
169
                              <at name="width">172</at>
171 170
                              <at name="items">
172 171
                               <object classname="com.jeta.forms.store.properties.ItemsProperty">
173 172
                                <at name="name">items</at>
......
229 228
                              <at name="editable">true</at>
230 229
                              <at name="requestFocusEnabled">false</at>
231 230
                              <at name="name">cboValue2</at>
232
                              <at name="width">164</at>
231
                              <at name="width">172</at>
233 232
                              <at name="items">
234 233
                               <object classname="com.jeta.forms.store.properties.ItemsProperty">
235 234
                                <at name="name">items</at>
......
291 290
                              <at name="editable">true</at>
292 291
                              <at name="requestFocusEnabled">false</at>
293 292
                              <at name="name">cboValue3</at>
294
                              <at name="width">163</at>
293
                              <at name="width">171</at>
295 294
                              <at name="items">
296 295
                               <object classname="com.jeta.forms.store.properties.ItemsProperty">
297 296
                                <at name="name">items</at>
......
353 352
                              <at name="editable">true</at>
354 353
                              <at name="requestFocusEnabled">false</at>
355 354
                              <at name="name">cboValue4</at>
356
                              <at name="width">157</at>
355
                              <at name="width">165</at>
357 356
                              <at name="items">
358 357
                               <object classname="com.jeta.forms.store.properties.ItemsProperty">
359 358
                                <at name="name">items</at>
......
373 372
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
374 373
                           <at name="cellconstraints">
375 374
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
376
                             <at name="column">2</at>
375
                             <at name="column">8</at>
377 376
                             <at name="row">4</at>
378 377
                             <at name="colspan">1</at>
379 378
                             <at name="rowspan">1</at>
......
412 411
                               </object>
413 412
                              </at>
414 413
                              <at name="horizontalAlignment">0</at>
415
                              <at name="name">lblRelationalOperator1</at>
416
                              <at name="width">137</at>
414
                              <at name="name">lblRelationalOperator2</at>
415
                              <at name="width">145</at>
417 416
                              <at name="text">Igual</at>
418 417
                              <at name="fill">
419 418
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
......
434 433
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
435 434
                           <at name="cellconstraints">
436 435
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
437
                             <at name="column">8</at>
436
                             <at name="column">14</at>
438 437
                             <at name="row">4</at>
439 438
                             <at name="colspan">1</at>
440 439
                             <at name="rowspan">1</at>
......
473 472
                               </object>
474 473
                              </at>
475 474
                              <at name="horizontalAlignment">0</at>
476
                              <at name="name">lblRelationalOperator2</at>
477
                              <at name="width">137</at>
475
                              <at name="name">lblRelationalOperator3</at>
476
                              <at name="width">144</at>
478 477
                              <at name="text">Igual</at>
479 478
                              <at name="fill">
480 479
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
......
495 494
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
496 495
                           <at name="cellconstraints">
497 496
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
498
                             <at name="column">14</at>
497
                             <at name="column">20</at>
499 498
                             <at name="row">4</at>
500 499
                             <at name="colspan">1</at>
501 500
                             <at name="rowspan">1</at>
......
534 533
                               </object>
535 534
                              </at>
536 535
                              <at name="horizontalAlignment">0</at>
537
                              <at name="name">lblRelationalOperator3</at>
538
                              <at name="width">136</at>
536
                              <at name="name">lblRelationalOperator4</at>
537
                              <at name="width">145</at>
539 538
                              <at name="text">Igual</at>
540 539
                              <at name="fill">
541 540
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
......
556 555
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
557 556
                           <at name="cellconstraints">
558 557
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
559
                             <at name="column">20</at>
560
                             <at name="row">4</at>
558
                             <at name="column">6</at>
559
                             <at name="row">2</at>
561 560
                             <at name="colspan">1</at>
562 561
                             <at name="rowspan">1</at>
563 562
                             <at name="halign">default</at>
......
595 594
                               </object>
596 595
                              </at>
597 596
                              <at name="horizontalAlignment">0</at>
598
                              <at name="name">lblRelationalOperator4</at>
599
                              <at name="width">137</at>
600
                              <at name="text">Igual</at>
597
                              <at name="name">lblLogicalOperators1</at>
598
                              <at name="width">45</at>
599
                              <at name="text">WWWWW</at>
601 600
                              <at name="fill">
602 601
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
603 602
                                <at name="name">fill</at>
......
617 616
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
618 617
                           <at name="cellconstraints">
619 618
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
620
                             <at name="column">6</at>
619
                             <at name="column">12</at>
621 620
                             <at name="row">2</at>
622 621
                             <at name="colspan">1</at>
623 622
                             <at name="rowspan">1</at>
......
656 655
                               </object>
657 656
                              </at>
658 657
                              <at name="horizontalAlignment">0</at>
659
                              <at name="name">lblLogicalOperators1</at>
658
                              <at name="name">lblLogicalOperators2</at>
660 659
                              <at name="width">45</at>
661 660
                              <at name="text">WWWWW</at>
662 661
                              <at name="fill">
......
678 677
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
679 678
                           <at name="cellconstraints">
680 679
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
681
                             <at name="column">12</at>
680
                             <at name="column">18</at>
682 681
                             <at name="row">2</at>
683 682
                             <at name="colspan">1</at>
684 683
                             <at name="rowspan">1</at>
......
717 716
                               </object>
718 717
                              </at>
719 718
                              <at name="horizontalAlignment">0</at>
720
                              <at name="name">lblLogicalOperators2</at>
719
                              <at name="name">lblLogicalOperators3</at>
721 720
                              <at name="width">45</at>
722 721
                              <at name="text">WWWWW</at>
723 722
                              <at name="fill">
......
739 738
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
740 739
                           <at name="cellconstraints">
741 740
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
742
                             <at name="column">18</at>
741
                             <at name="column">2</at>
743 742
                             <at name="row">2</at>
744 743
                             <at name="colspan">1</at>
745 744
                             <at name="rowspan">1</at>
......
778 777
                               </object>
779 778
                              </at>
780 779
                              <at name="horizontalAlignment">0</at>
781
                              <at name="name">lblLogicalOperators3</at>
782
                              <at name="width">45</at>
783
                              <at name="text">WWWWW</at>
780
                              <at name="name">lblField1</at>
781
                              <at name="width">145</at>
784 782
                              <at name="fill">
785 783
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
786 784
                                <at name="name">fill</at>
787 785
                               </object>
788 786
                              </at>
789
                              <at name="height">14</at>
787
                              <at name="height">12</at>
790 788
                             </object>
791 789
                            </at>
792 790
                           </object>
......
800 798
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
801 799
                           <at name="cellconstraints">
802 800
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
803
                             <at name="column">2</at>
801
                             <at name="column">8</at>
804 802
                             <at name="row">2</at>
805 803
                             <at name="colspan">1</at>
806 804
                             <at name="rowspan">1</at>
......
839 837
                               </object>
840 838
                              </at>
841 839
                              <at name="horizontalAlignment">0</at>
842
                              <at name="name">lblField1</at>
843
                              <at name="width">137</at>
840
                              <at name="name">lblField2</at>
841
                              <at name="width">145</at>
844 842
                              <at name="fill">
845 843
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
846 844
                                <at name="name">fill</at>
......
860 858
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
861 859
                           <at name="cellconstraints">
862 860
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
863
                             <at name="column">8</at>
861
                             <at name="column">14</at>
864 862
                             <at name="row">2</at>
865 863
                             <at name="colspan">1</at>
866 864
                             <at name="rowspan">1</at>
......
899 897
                               </object>
900 898
                              </at>
901 899
                              <at name="horizontalAlignment">0</at>
902
                              <at name="name">lblField2</at>
903
                              <at name="width">137</at>
900
                              <at name="name">lblField3</at>
901
                              <at name="width">144</at>
904 902
                              <at name="fill">
905 903
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
906 904
                                <at name="name">fill</at>
......
920 918
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
921 919
                           <at name="cellconstraints">
922 920
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
923
                             <at name="column">14</at>
921
                             <at name="column">20</at>
924 922
                             <at name="row">2</at>
925 923
                             <at name="colspan">1</at>
926 924
                             <at name="rowspan">1</at>
......
959 957
                               </object>
960 958
                              </at>
961 959
                              <at name="horizontalAlignment">0</at>
962
                              <at name="name">lblField3</at>
963
                              <at name="width">136</at>
960
                              <at name="name">lblField4</at>
961
                              <at name="width">145</at>
964 962
                              <at name="fill">
965 963
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
966 964
                                <at name="name">fill</at>
......
980 978
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
981 979
                           <at name="cellconstraints">
982 980
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
983
                             <at name="column">20</at>
981
                             <at name="column">4</at>
984 982
                             <at name="row">2</at>
985 983
                             <at name="colspan">1</at>
986 984
                             <at name="rowspan">1</at>
......
1018 1016
                                </at>
1019 1017
                               </object>
1020 1018
                              </at>
1021
                              <at name="horizontalAlignment">0</at>
1022
                              <at name="name">lblField4</at>
1023
                              <at name="width">137</at>
1019
                              <at name="icon">
1020
                               <object classname="com.jeta.forms.store.properties.IconProperty">
1021
                                <at name="embedded">false</at>
1022
                                <at name="path">src/main/resources/org/gvsig/fmap/dal/swing/impl/searchpanel/featurestore-column.png</at>
1023
                                <at name="description">featurestore-column.png</at>
1024
                                <at name="width">16</at>
1025
                                <at name="height">16</at>
1026
                               </object>
1027
                              </at>
1028
                              <at name="name">lblExtraFields1</at>
1029
                              <at name="width">16</at>
1024 1030
                              <at name="fill">
1025 1031
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
1026 1032
                                <at name="name">fill</at>
1027 1033
                               </object>
1028 1034
                              </at>
1029
                              <at name="height">12</at>
1035
                              <at name="height">16</at>
1030 1036
                             </object>
1031 1037
                            </at>
1032 1038
                           </object>
......
1040 1046
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
1041 1047
                           <at name="cellconstraints">
1042 1048
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
1043
                             <at name="column">4</at>
1049
                             <at name="column">10</at>
1044 1050
                             <at name="row">2</at>
1045 1051
                             <at name="colspan">1</at>
1046 1052
                             <at name="rowspan">1</at>
......
1087 1093
                                <at name="height">16</at>
1088 1094
                               </object>
1089 1095
                              </at>
1090
                              <at name="name">lblExtraFields1</at>
1096
                              <at name="name">lblExtraFields2</at>
1091 1097
                              <at name="width">16</at>
1092 1098
                              <at name="fill">
1093 1099
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
......
1108 1114
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
1109 1115
                           <at name="cellconstraints">
1110 1116
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
1111
                             <at name="column">10</at>
1117
                             <at name="column">16</at>
1112 1118
                             <at name="row">2</at>
1113 1119
                             <at name="colspan">1</at>
1114 1120
                             <at name="rowspan">1</at>
......
1155 1161
                                <at name="height">16</at>
1156 1162
                               </object>
1157 1163
                              </at>
1158
                              <at name="name">lblExtraFields2</at>
1164
                              <at name="name">lblExtraFields3</at>
1159 1165
                              <at name="width">16</at>
1160 1166
                              <at name="fill">
1161 1167
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
......
1176 1182
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
1177 1183
                           <at name="cellconstraints">
1178 1184
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
1179
                             <at name="column">16</at>
1185
                             <at name="column">21</at>
1180 1186
                             <at name="row">2</at>
1181 1187
                             <at name="colspan">1</at>
1182 1188
                             <at name="rowspan">1</at>
......
1223 1229
                                <at name="height">16</at>
1224 1230
                               </object>
1225 1231
                              </at>
1226
                              <at name="name">lblExtraFields3</at>
1232
                              <at name="name">lblExtraFields4</at>
1227 1233
                              <at name="width">16</at>
1228 1234
                              <at name="fill">
1229 1235
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
......
1244 1250
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
1245 1251
                           <at name="cellconstraints">
1246 1252
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
1247
                             <at name="column">21</at>
1248
                             <at name="row">2</at>
1253
                             <at name="column">2</at>
1254
                             <at name="row">4</at>
1249 1255
                             <at name="colspan">1</at>
1250 1256
                             <at name="rowspan">1</at>
1251 1257
                             <at name="halign">default</at>
......
1282 1288
                                </at>
1283 1289
                               </object>
1284 1290
                              </at>
1285
                              <at name="icon">
1286
                               <object classname="com.jeta.forms.store.properties.IconProperty">
1287
                                <at name="embedded">false</at>
1288
                                <at name="path">src/main/resources/org/gvsig/fmap/dal/swing/impl/searchpanel/featurestore-column.png</at>
1289
                                <at name="description">featurestore-column.png</at>
1290
                                <at name="width">16</at>
1291
                                <at name="height">16</at>
1292
                               </object>
1293
                              </at>
1294
                              <at name="name">lblExtraFields4</at>
1295
                              <at name="width">16</at>
1291
                              <at name="horizontalAlignment">0</at>
1292
                              <at name="name">lblRelationalOperator1</at>
1293
                              <at name="width">145</at>
1294
                              <at name="text">Igual</at>
1296 1295
                              <at name="fill">
1297 1296
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
1298 1297
                                <at name="name">fill</at>
1299 1298
                               </object>
1300 1299
                              </at>
1301
                              <at name="height">16</at>
1300
                              <at name="height">14</at>
1302 1301
                             </object>
1303 1302
                            </at>
1304 1303
                           </object>
......
1323 1322
                           </at>
1324 1323
                           <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
1325 1324
                          </super>
1326
                          <at name="id">embedded.314381335</at>
1325
                          <at name="id">embedded.1554343653</at>
1327 1326
                          <at name="rowspecs">CENTER:DEFAULT:NONE</at>
1328 1327
                          <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
1329 1328
                          <at name="components">
......
1617 1616
                         </object>
1618 1617
                        </at>
1619 1618
                       </item>
1619
                       <item >
1620
                        <at name="value">
1621
                         <object classname="com.jeta.forms.store.memento.BeanMemento">
1622
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
1623
                           <at name="cellconstraints">
1624
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
1625
                             <at name="column">4</at>
1626
                             <at name="row">4</at>
1627
                             <at name="colspan">1</at>
1628
                             <at name="rowspan">1</at>
1629
                             <at name="halign">default</at>
1630
                             <at name="valign">default</at>
1631
                             <at name="insets" object="insets">0,0,0,0</at>
1632
                            </object>
1633
                           </at>
1634
                           <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
1635
                          </super>
1636
                          <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
1637
                          <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
1638
                          <at name="beanproperties">
1639
                           <object classname="com.jeta.forms.store.memento.PropertiesMemento">
1640
                            <at name="classname">com.jeta.forms.components.label.JETALabel</at>
1641
                            <at name="properties">
1642
                             <object classname="com.jeta.forms.store.support.PropertyMap">
1643
                              <at name="border">
1644
                               <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
1645
                                <super classname="com.jeta.forms.store.properties.BorderProperty">
1646
                                 <at name="name">border</at>
1647
                                </super>
1648
                                <at name="borders">
1649
                                 <object classname="java.util.LinkedList">
1650
                                  <item >
1651
                                   <at name="value">
1652
                                    <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
1653
                                     <super classname="com.jeta.forms.store.properties.BorderProperty">
1654
                                      <at name="name">border</at>
1655
                                     </super>
1656
                                    </object>
1657
                                   </at>
1658
                                  </item>
1659
                                 </object>
1660
                                </at>
1661
                               </object>
1662
                              </at>
1663
                              <at name="horizontalAlignment">0</at>
1664
                              <at name="name">lblNull1</at>
1665
                              <at name="width">16</at>
1666
                              <at name="fill">
1667
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
1668
                                <at name="name">fill</at>
1669
                               </object>
1670
                              </at>
1671
                              <at name="height">12</at>
1672
                             </object>
1673
                            </at>
1674
                           </object>
1675
                          </at>
1676
                         </object>
1677
                        </at>
1678
                       </item>
1679
                       <item >
1680
                        <at name="value">
1681
                         <object classname="com.jeta.forms.store.memento.BeanMemento">
1682
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
1683
                           <at name="cellconstraints">
1684
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
1685
                             <at name="column">10</at>
1686
                             <at name="row">4</at>
1687
                             <at name="colspan">1</at>
1688
                             <at name="rowspan">1</at>
1689
                             <at name="halign">default</at>
1690
                             <at name="valign">default</at>
1691
                             <at name="insets" object="insets">0,0,0,0</at>
1692
                            </object>
1693
                           </at>
1694
                           <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
1695
                          </super>
1696
                          <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
1697
                          <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
1698
                          <at name="beanproperties">
1699
                           <object classname="com.jeta.forms.store.memento.PropertiesMemento">
1700
                            <at name="classname">com.jeta.forms.components.label.JETALabel</at>
1701
                            <at name="properties">
1702
                             <object classname="com.jeta.forms.store.support.PropertyMap">
1703
                              <at name="border">
1704
                               <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
1705
                                <super classname="com.jeta.forms.store.properties.BorderProperty">
1706
                                 <at name="name">border</at>
1707
                                </super>
1708
                                <at name="borders">
1709
                                 <object classname="java.util.LinkedList">
1710
                                  <item >
1711
                                   <at name="value">
1712
                                    <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
1713
                                     <super classname="com.jeta.forms.store.properties.BorderProperty">
1714
                                      <at name="name">border</at>
1715
                                     </super>
1716
                                    </object>
1717
                                   </at>
1718
                                  </item>
1719
                                 </object>
1720
                                </at>
1721
                               </object>
1722
                              </at>
1723
                              <at name="horizontalAlignment">0</at>
1724
                              <at name="name">lblNull2</at>
1725
                              <at name="width">16</at>
1726
                              <at name="fill">
1727
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
1728
                                <at name="name">fill</at>
1729
                               </object>
1730
                              </at>
1731
                              <at name="height">12</at>
1732
                             </object>
1733
                            </at>
1734
                           </object>
1735
                          </at>
1736
                         </object>
1737
                        </at>
1738
                       </item>
1739
                       <item >
1740
                        <at name="value">
1741
                         <object classname="com.jeta.forms.store.memento.BeanMemento">
1742
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
1743
                           <at name="cellconstraints">
1744
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
1745
                             <at name="column">16</at>
1746
                             <at name="row">4</at>
1747
                             <at name="colspan">1</at>
1748
                             <at name="rowspan">1</at>
1749
                             <at name="halign">default</at>
1750
                             <at name="valign">default</at>
1751
                             <at name="insets" object="insets">0,0,0,0</at>
1752
                            </object>
1753
                           </at>
1754
                           <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
1755
                          </super>
1756
                          <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
1757
                          <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
1758
                          <at name="beanproperties">
1759
                           <object classname="com.jeta.forms.store.memento.PropertiesMemento">
1760
                            <at name="classname">com.jeta.forms.components.label.JETALabel</at>
1761
                            <at name="properties">
1762
                             <object classname="com.jeta.forms.store.support.PropertyMap">
1763
                              <at name="border">
1764
                               <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
1765
                                <super classname="com.jeta.forms.store.properties.BorderProperty">
1766
                                 <at name="name">border</at>
1767
                                </super>
1768
                                <at name="borders">
1769
                                 <object classname="java.util.LinkedList">
1770
                                  <item >
1771
                                   <at name="value">
1772
                                    <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
1773
                                     <super classname="com.jeta.forms.store.properties.BorderProperty">
1774
                                      <at name="name">border</at>
1775
                                     </super>
1776
                                    </object>
1777
                                   </at>
1778
                                  </item>
1779
                                 </object>
1780
                                </at>
1781
                               </object>
1782
                              </at>
1783
                              <at name="horizontalAlignment">0</at>
1784
                              <at name="name">lblNull3</at>
1785
                              <at name="width">16</at>
1786
                              <at name="fill">
1787
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
1788
                                <at name="name">fill</at>
1789
                               </object>
1790
                              </at>
1791
                              <at name="height">12</at>
1792
                             </object>
1793
                            </at>
1794
                           </object>
1795
                          </at>
1796
                         </object>
1797
                        </at>
1798
                       </item>
1799
                       <item >
1800
                        <at name="value">
1801
                         <object classname="com.jeta.forms.store.memento.BeanMemento">
1802
                          <super classname="com.jeta.forms.store.memento.ComponentMemento">
1803
                           <at name="cellconstraints">
1804
                            <object classname="com.jeta.forms.store.memento.CellConstraintsMemento">
1805
                             <at name="column">21</at>
1806
                             <at name="row">4</at>
1807
                             <at name="colspan">1</at>
1808
                             <at name="rowspan">1</at>
1809
                             <at name="halign">default</at>
1810
                             <at name="valign">default</at>
1811
                             <at name="insets" object="insets">0,0,0,0</at>
1812
                            </object>
1813
                           </at>
1814
                           <at name="componentclass">com.jeta.forms.gui.form.StandardComponent</at>
1815
                          </super>
1816
                          <at name="jetabeanclass">com.jeta.forms.gui.beans.JETABean</at>
1817
                          <at name="beanclass">com.jeta.forms.components.label.JETALabel</at>
1818
                          <at name="beanproperties">
1819
                           <object classname="com.jeta.forms.store.memento.PropertiesMemento">
1820
                            <at name="classname">com.jeta.forms.components.label.JETALabel</at>
1821
                            <at name="properties">
1822
                             <object classname="com.jeta.forms.store.support.PropertyMap">
1823
                              <at name="border">
1824
                               <object classname="com.jeta.forms.store.properties.CompoundBorderProperty">
1825
                                <super classname="com.jeta.forms.store.properties.BorderProperty">
1826
                                 <at name="name">border</at>
1827
                                </super>
1828
                                <at name="borders">
1829
                                 <object classname="java.util.LinkedList">
1830
                                  <item >
1831
                                   <at name="value">
1832
                                    <object classname="com.jeta.forms.store.properties.DefaultBorderProperty">
1833
                                     <super classname="com.jeta.forms.store.properties.BorderProperty">
1834
                                      <at name="name">border</at>
1835
                                     </super>
1836
                                    </object>
1837
                                   </at>
1838
                                  </item>
1839
                                 </object>
1840
                                </at>
1841
                               </object>
1842
                              </at>
1843
                              <at name="horizontalAlignment">0</at>
1844
                              <at name="name">lblNull4</at>
1845
                              <at name="width">16</at>
1846
                              <at name="fill">
1847
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
1848
                                <at name="name">fill</at>
1849
                               </object>
1850
                              </at>
1851
                              <at name="height">12</at>
1852
                             </object>
1853
                            </at>
1854
                           </object>
1855
                          </at>
1856
                         </object>
1857
                        </at>
1858
                       </item>
1620 1859
                      </object>
1621 1860
                     </at>
1622 1861
                     <at name="properties">
......
1753 1992
                      </at>
1754 1993
                      <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
1755 1994
                     </super>
1756
                     <at name="id">embedded.1310362700</at>
1995
                     <at name="id">embedded.358053784</at>
1757 1996
                     <at name="rowspecs">CENTER:2DLU:NONE,CENTER:DEFAULT:NONE,CENTER:2DLU:NONE,FILL:DEFAULT:GROW(1.0),CENTER:2DLU:NONE</at>
1758 1997
                     <at name="colspecs">FILL:4DLU:NONE,FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE,FILL:4DLU:NONE</at>
1759 1998
                     <at name="components">
......
1803 2042
                               </object>
1804 2043
                              </at>
1805 2044
                              <at name="name">lblExpressionDeBusqueda</at>
1806
                              <at name="width">780</at>
2045
                              <at name="width">812</at>
1807 2046
                              <at name="text">_Insert_a_search_expression</at>
1808 2047
                              <at name="fill">
1809 2048
                               <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
......
2042 2281
                              <at name="scrollableTracksViewportHeight">true</at>
2043 2282
                              <at name="scrollableTracksViewportWidth">true</at>
2044 2283
                              <at name="name">txtAdvancedExpression</at>
2045
                              <at name="width">778</at>
2284
                              <at name="width">810</at>
2046 2285
                              <at name="scollBars">
2047 2286
                               <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
2048 2287
                                <at name="name">scollBars</at>
......
2178 2417
              </at>
2179 2418
             </object>
2180 2419
            </at>
2181
            <at name="width">898</at>
2420
            <at name="width">930</at>
2182 2421
            <at name="tabCount">2</at>
2183 2422
            <at name="height">208</at>
2184 2423
           </object>
......
2233 2472
             </object>
2234 2473
            </at>
2235 2474
            <at name="name">tblResults</at>
2236
            <at name="width">896</at>
2475
            <at name="width">928</at>
2237 2476
            <at name="scollBars">
2238 2477
             <object classname="com.jeta.forms.store.properties.ScrollBarsProperty">
2239 2478
              <at name="name">scollBars</at>
......
2286 2525
         </at>
2287 2526
         <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
2288 2527
        </super>
2289
        <at name="id">embedded.1074793531</at>
2528
        <at name="id">embedded.347079236</at>
2290 2529
        <at name="rowspecs">CENTER:DEFAULT:NONE</at>
2291 2530
        <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:DEFAULT:NONE,FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
2292 2531
        <at name="components">
......
2502 2741
         </at>
2503 2742
         <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
2504 2743
        </super>
2505
        <at name="id">embedded.973613089</at>
2744
        <at name="id">embedded.1969937399</at>
2506 2745
        <at name="rowspecs">CENTER:DEFAULT:NONE</at>
2507 2746
        <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:4DLU:NONE,FILL:DEFAULT:NONE</at>
2508 2747
        <at name="components">
......
2552 2791
                  </object>
2553 2792
                 </at>
2554 2793
                 <at name="name">lblMsg</at>
2555
                 <at name="width">870</at>
2794
                 <at name="width">902</at>
2556 2795
                 <at name="fill">
2557 2796
                  <object classname="com.jeta.forms.store.properties.effects.PaintProperty">
2558 2797
                   <at name="name">fill</at>
......
2699 2938
         </at>
2700 2939
         <at name="componentclass">com.jeta.forms.gui.form.FormComponent</at>
2701 2940
        </super>
2702
        <at name="id">embedded.206563952</at>
2941
        <at name="id">embedded.1379545973</at>
2703 2942
        <at name="rowspecs">CENTER:DEFAULT:NONE</at>
2704 2943
        <at name="colspecs">FILL:DEFAULT:GROW(1.0),FILL:3PX:NONE,FILL:DEFAULT:NONE,FILL:3PX:NONE,FILL:DEFAULT:NONE,FILL:3PX:NONE,FILL:DEFAULT:NONE</at>
2705 2944
        <at name="components">
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.swing/org.gvsig.fmap.dal.swing.impl/src/main/java/org/gvsig/fmap/dal/swing/impl/searchpanel/SearchConditionFieldController.java
45 45
import org.gvsig.fmap.dal.feature.ForeingKey;
46 46
import org.gvsig.fmap.dal.swing.impl.featuretype.DefaultFeatureAttributeSelectionPanel;
47 47
import static org.gvsig.fmap.dal.swing.impl.searchpanel.DefaultSearchPanel.getAttributeDescriptorLabel;
48
import static org.gvsig.fmap.dal.swing.searchpanel.FeatureStoreSearchPanel.NOT_HANDLE_NULL;
49
import static org.gvsig.fmap.dal.swing.searchpanel.FeatureStoreSearchPanel.NULL_AS_FALSE;
50
import static org.gvsig.fmap.dal.swing.searchpanel.FeatureStoreSearchPanel.NULL_AS_TRUE;
48 51
import org.gvsig.fmap.dal.swing.searchpanel.SearchParameters;
49 52
import org.gvsig.tools.ToolsLocator;
50 53
import org.gvsig.tools.dataTypes.Coercion;
......
78 81
@SuppressWarnings("UseSpecificCatch")
79 82
public class SearchConditionFieldController {
80 83

  
81
  private static final Logger LOGGER = LoggerFactory.getLogger(SearchConditionFieldController.class);
82
  private static final Class LOAD_MORE_ELEMENTS = SearchConditionFieldController.class;
83
  private static class Field extends LabeledValueImpl<String> {
84
    private static final Logger LOGGER = LoggerFactory.getLogger(SearchConditionFieldController.class);
85
    private static final Class LOAD_MORE_ELEMENTS = SearchConditionFieldController.class;
86
    private static class Field extends LabeledValueImpl<String> {
84 87

  
85
    FeatureAttributeDescriptor attrdesc;
86
    private final FeatureStore store;
87
    private final int presentationMode;
88
    private final boolean showStoreName;
89
    private final FeatureAttributeDescriptor[] path;
88
        FeatureAttributeDescriptor attrdesc;
89
        private final FeatureStore store;
90
        private final int presentationMode;
91
        private final boolean showStoreName;
92
        private final FeatureAttributeDescriptor[] path;
90 93

  
91
    public Field(FeatureAttributeDescriptor[] path, FeatureStore store, FeatureAttributeDescriptor attrdesc, int presentationMode) {
92
      this(path, store, attrdesc, presentationMode, false);
93
    }
94
        public Field(FeatureAttributeDescriptor[] path, FeatureStore store, FeatureAttributeDescriptor attrdesc, int presentationMode) {
95
            this(path, store, attrdesc, presentationMode, false);
96
        }
94 97

  
95
    public Field(
96
            FeatureAttributeDescriptor[] path,
97
            FeatureStore store,
98
            FeatureAttributeDescriptor attrdesc,
99
            int presentationMode,
100
            boolean showStoreName
101
    ) {
102
      super(
103
              getAttributeDescriptorLabel(attrdesc, store.getName()),
104
              attrdesc.getName()
105
      );
106
      this.path = path;
107
      this.store = store;
108
      this.attrdesc = attrdesc;
109
      this.presentationMode = presentationMode;
110
      this.showStoreName = showStoreName;
111
    }
98
        public Field(
99
                FeatureAttributeDescriptor[] path,
100
                FeatureStore store,
101
                FeatureAttributeDescriptor attrdesc,
102
                int presentationMode,
103
                boolean showStoreName
104
        ) {
105
            super(
106
                    getAttributeDescriptorLabel(attrdesc, store.getName()),
107
                    attrdesc.getName()
108
            );
109
            this.path = path;
110
            this.store = store;
111
            this.attrdesc = attrdesc;
112
            this.presentationMode = presentationMode;
113
            this.showStoreName = showStoreName;
114
        }
112 115

  
113
    public FeatureAttributeDescriptor[] getPath() {
114
      return this.path;
115
    }
116
        public FeatureAttributeDescriptor[] getPath() {
117
            return this.path;
118
        }
116 119

  
117
    @Override
118
    public String getLabel() {
119
      String theLabel = getAttributeDescriptorLabel(attrdesc, showStoreName ? store.getName() : null);
120
      switch (this.presentationMode) {
121
        case Search.OrderedAttribute.TYPE_REGURAL:
122
          break;
123
        case Search.OrderedAttribute.TYPE_FAVORITE:
124
          theLabel = "<html><b>" + theLabel + "</b></html>";
125
          break;
126
        case Search.OrderedAttribute.TYPE_RECENT:
127
          theLabel = "<html><i><b>" + theLabel + "</b></i></html>";
128
          break;
129
      }
130
      return theLabel;
131
    }
120
        @Override
121
        public String getLabel() {
122
            String theLabel = getAttributeDescriptorLabel(attrdesc, showStoreName ? store.getName() : null);
123
            switch (this.presentationMode) {
124
                case Search.OrderedAttribute.TYPE_REGURAL:
125
                    break;
126
                case Search.OrderedAttribute.TYPE_FAVORITE:
127
                    theLabel = "<html><b>" + theLabel + "</b></html>";
128
                    break;
129
                case Search.OrderedAttribute.TYPE_RECENT:
130
                    theLabel = "<html><i><b>" + theLabel + "</b></i></html>";
131
                    break;
132
            }
133
            return theLabel;
134
        }
132 135

  
133
    public FeatureAttributeDescriptor getParentDescriptor() {
134
      int l = this.path.length;
135
      if (l < 2) {
136
        return null;
137
      }
138
      return this.path[l - 2];
139
    }
136
        public FeatureAttributeDescriptor getParentDescriptor() {
137
            int l = this.path.length;
138
            if (l < 2) {
139
                return null;
140
            }
141
            return this.path[l - 2];
142
        }
140 143

  
141
    public FeatureAttributeDescriptor getDescriptor() {
142
      return this.attrdesc;
143
    }
144
        public FeatureAttributeDescriptor getDescriptor() {
145
            return this.attrdesc;
146
        }
144 147

  
145
    public FeatureStore getFeatureStore() {
146
      return this.store;
148
        public FeatureStore getFeatureStore() {
149
            return this.store;
150
        }
151

  
147 152
    }
148 153

  
149
  }
154
    private FeatureStore store;
155
    private SearchParameters parameters;
156
    private final JLabel lblFields;
157
    private final JLabel lblExtraFields;
158
    private final JLabel lblLogicalOperators;
159
    private final JLabel lblRelationalOperators;
160
    private final JComboBox cboValue;
161
    private final JLabel lblNull;
162
    private Object valueAssigned = null;
150 163

  
151
  private FeatureStore store;
152
  private SearchParameters parameters;
153
  private final JLabel lblFields;
154
  private final JLabel lblExtraFields;
155
  private final JLabel lblLogicalOperators;
156
  private final JLabel lblRelationalOperators;
157
  private final JComboBox cboValue;
158
  private Object valueAssigned = null;
164
    private DropDown ddnFields;
165
    private DropDown ddnLogicalOperators;
166
    private DropDown ddnRelationalOperators;
167
    private DropDown ddnNullBehavior;
168
    
169
    private LabeledValue[] relationalOperators;
170
    private LabeledValue[] logicalOperators;
171
    private LabeledValue[] nullBehaviors;
172
    private ArrayList<ImageIcon> nullOperatorsIcons;
159 173

  
160
  private DropDown ddnFields;
161
  private DropDown ddnLogicalOperators;
162
  private DropDown ddnRelationalOperators;
174
    private final int SIZE_ORDERED_ATTRIBUTES = 20;
175
    private DatePickerController dateController = null;
163 176

  
164
  private LabeledValue[] relationalOperators;
165
  private LabeledValue[] logicalOperators;
166
  private final int SIZE_ORDERED_ATTRIBUTES = 20;
167
  
168
  private DatePickerController dateController = null;
169
  
170
  
171
  private int updateValuesTimeLimit;
172
  private int updateValuesFeaturesLimit;
173
  private boolean canHasMoreElements;
177
    private int updateValuesTimeLimit;
178
    private int updateValuesFeaturesLimit;
179
    private boolean canHasMoreElements;
174 180

  
181
    public SearchConditionFieldController(
182
            SearchParameters parameters,
183
            FeatureStore store,
184
            JLabel lblFields,
185
            JLabel lblExtraFields,
186
            JLabel lblRelationalOperators,
187
            JComboBox cboValue,
188
            JLabel lblNull,
189
            JLabel lblLogicalOperators
190
    ) {
191
        this.parameters = parameters;
192
        this.store = store;
193
        this.lblFields = lblFields;
194
        this.lblExtraFields = lblExtraFields;
195
        this.lblRelationalOperators = lblRelationalOperators;
196
        this.cboValue = cboValue;
197
        this.lblNull = lblNull;
198
        this.lblLogicalOperators = lblLogicalOperators;
199
        this.updateValuesTimeLimit = 60;
200
        this.updateValuesFeaturesLimit = 1000;
201
        this.canHasMoreElements = false;
202
        this.initComponents();
203
    }
175 204

  
176
  public SearchConditionFieldController(
177
          SearchParameters parameters,
178
          FeatureStore store,
179
          JLabel lblFields,
180
          JLabel lblExtraFields,
181
          JLabel lblRelationalOperators,
182
          JComboBox cboValue,
183
          JLabel lblLogicalOperators
184
  ) {
185
    this.parameters = parameters;
186
    this.store = store;
187
    this.lblFields = lblFields;
188
    this.lblExtraFields = lblExtraFields;
189
    this.lblRelationalOperators = lblRelationalOperators;
190
    this.cboValue = cboValue;
191
    this.lblLogicalOperators = lblLogicalOperators;
192
    this.updateValuesTimeLimit = 60;
193
    this.updateValuesFeaturesLimit = 1000;
194
    this.canHasMoreElements = false;
195
    this.initComponents();
196
  }
197

  
198
  public boolean isAValidRelationOperator(String name) {
199
    for (LabeledValue relationalOperator : relationalOperators) {
200
      if (StringUtils.equalsIgnoreCase(name, (CharSequence) relationalOperator.getValue())) {
201
        return true;
202
      }
205
    public boolean isAValidRelationOperator(String name) {
206
        for (LabeledValue relationalOperator : relationalOperators) {
207
            if (StringUtils.equalsIgnoreCase(name, (CharSequence) relationalOperator.getValue())) {
208
                return true;
209
            }
210
        }
211
        return false;
203 212
    }
204
    return false;
205
  }
206 213

  
207
  private void initComponents() {
208
    try {
209
      I18nManager i18n = ToolsLocator.getI18nManager();
210
      ToolsSwingManager toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
214
    private void initComponents() {
215
        try {
216
            I18nManager i18n = ToolsLocator.getI18nManager();
217
            ToolsSwingManager toolsSwingManager = ToolsSwingLocator.getToolsSwingManager();
211 218

  
212
      relationalOperators = new LabeledValue[]{
213
        new LabeledValueImpl(i18n.getTranslation("_Equals_to"), ExpressionBuilder.OPERATOR_EQ),
214
        new LabeledValueImpl(i18n.getTranslation("_Like_to"), ExpressionBuilder.OPERATOR_ILIKE),
215
        new LabeledValueImpl(i18n.getTranslation("_Not_equals_to"), ExpressionBuilder.OPERATOR_NE),
216
        new LabeledValueImpl(i18n.getTranslation("_Greater_than"), ExpressionBuilder.OPERATOR_GT),
217
        new LabeledValueImpl(i18n.getTranslation("_Greater_or_equal_to"), ExpressionBuilder.OPERATOR_GE),
218
        new LabeledValueImpl(i18n.getTranslation("_Less_than"), ExpressionBuilder.OPERATOR_LT),
219
        new LabeledValueImpl(i18n.getTranslation("_Less_or_equal_to"), ExpressionBuilder.OPERATOR_LE)
220
      };
219
            relationalOperators = new LabeledValue[]{
220
                new LabeledValueImpl(i18n.getTranslation("_Equals_to"), ExpressionBuilder.OPERATOR_EQ),
221
                new LabeledValueImpl(i18n.getTranslation("_Like_to"), ExpressionBuilder.OPERATOR_ILIKE),
222
                new LabeledValueImpl(i18n.getTranslation("_Not_equals_to"), ExpressionBuilder.OPERATOR_NE),
223
                new LabeledValueImpl(i18n.getTranslation("_Greater_than"), ExpressionBuilder.OPERATOR_GT),
224
                new LabeledValueImpl(i18n.getTranslation("_Greater_or_equal_to"), ExpressionBuilder.OPERATOR_GE),
225
                new LabeledValueImpl(i18n.getTranslation("_Less_than"), ExpressionBuilder.OPERATOR_LT),
226
                new LabeledValueImpl(i18n.getTranslation("_Less_or_equal_to"), ExpressionBuilder.OPERATOR_LE),
227
                new LabeledValueImpl(i18n.getTranslation("_Is_null"), ExpressionBuilder.OPERATOR_IS_NULL),
228
                new LabeledValueImpl(i18n.getTranslation("_Is_not_null"), ExpressionBuilder.OPERATOR_IS_NOT_NULL)
229
            };
221 230

  
222
      logicalOperators = new LabeledValue[]{
223
        new LabeledValueImpl(i18n.getTranslation("_Or"), ExpressionBuilder.OPERATOR_OR),
224
        new LabeledValueImpl(i18n.getTranslation("_And"), ExpressionBuilder.OPERATOR_AND)
225
      };
231
            logicalOperators = new LabeledValue[]{
232
                new LabeledValueImpl(i18n.getTranslation("_Or"), ExpressionBuilder.OPERATOR_OR),
233
                new LabeledValueImpl(i18n.getTranslation("_And"), ExpressionBuilder.OPERATOR_AND)
234
            };
226 235

  
227
      this.lblExtraFields.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
236
            nullBehaviors = new LabeledValue[]{
237
                new LabeledValueImpl(i18n.getTranslation("_Not_handle_null_values"), NOT_HANDLE_NULL),
238
                new LabeledValueImpl(i18n.getTranslation("_Null_values_as_true"), NULL_AS_TRUE),
239
                new LabeledValueImpl(i18n.getTranslation("_Null_values_as_false"), NULL_AS_FALSE)
240
            };
228 241

  
229
      this.ddnFields = toolsSwingManager.createDropDown(lblFields);
230
      this.ddnFields.setVisibleDropdownArrow(false);
231
      this.ddnRelationalOperators = toolsSwingManager.createDropDown(lblRelationalOperators);
232
      this.ddnRelationalOperators.setVisibleDropdownArrow(false);
233
      if (lblLogicalOperators != null) {
234
        this.ddnLogicalOperators = toolsSwingManager.createDropDown(lblLogicalOperators);
235
        this.ddnLogicalOperators.setVisibleDropdownArrow(false);
236
      }
242
            nullOperatorsIcons = new ArrayList<ImageIcon>();
243
            nullOperatorsIcons.add(ToolsSwingLocator.getIconThemeManager().getCurrent().get("search-nullbehavior-null"));
244
            nullOperatorsIcons.add(ToolsSwingLocator.getIconThemeManager().getCurrent().get("search-nullbehavior-true"));
245
            nullOperatorsIcons.add(ToolsSwingLocator.getIconThemeManager().getCurrent().get("search-nullbehavior-false2"));
237 246

  
238
      DefaultComboBoxModel modelRelationalOperators = new DefaultComboBoxModel();
239
      for (LabeledValue op : relationalOperators) {
240
        modelRelationalOperators.addElement(op);
241
      }
242
      this.ddnRelationalOperators.setModel(modelRelationalOperators);
247
            this.lblExtraFields.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
243 248

  
244
      if (this.ddnLogicalOperators != null) {
245
        DefaultComboBoxModel modelLogicalOperators = new DefaultComboBoxModel();
246
        for (LabeledValue op : logicalOperators) {
247
          modelLogicalOperators.addElement(op);
248
        }
249
        this.ddnLogicalOperators.setModel(modelLogicalOperators);
250
        this.ddnLogicalOperators.setSelectedIndex(1);
251
      }
252
      FeatureType featureType = parameters.getFeatureType(store);
253
      Search search = (Search) ToolsLocator.getComplementsManager().get(
254
              Search.COMPLEMENT_MANE, featureType
255
      );
256
      List<Search.OrderedAttribute> orderedAttributes = search.getOrderedAttributes(
257
              Search.BASIC_TYPES_FILTER,
258
              Search.STR_INT_LONG_LABEL_ORDER,
259
              SIZE_ORDERED_ATTRIBUTES
260
      );
261
      List<ImageIcon> icons = new ArrayList<>();
249
            this.ddnFields = toolsSwingManager.createDropDown(lblFields);
250
            this.ddnFields.setVisibleDropdownArrow(false);
251
            this.ddnRelationalOperators = toolsSwingManager.createDropDown(lblRelationalOperators);
252
            this.ddnRelationalOperators.setVisibleDropdownArrow(false);
253
            if (lblLogicalOperators != null) {
254
                this.ddnLogicalOperators = toolsSwingManager.createDropDown(lblLogicalOperators);
255
                this.ddnLogicalOperators.setVisibleDropdownArrow(false);
256
            }
257
            
258
            DefaultComboBoxModel modelRelationalOperators = new DefaultComboBoxModel();
259
            for (LabeledValue op : relationalOperators) {
260
                modelRelationalOperators.addElement(op);
261
            }
262
            this.ddnRelationalOperators.setModel(modelRelationalOperators);
263
            this.ddnRelationalOperators.addItemListener(new ItemListener() {
264
                @Override
265
                public void itemStateChanged(ItemEvent ie) {
266
                    if (ie.getStateChange() == ItemEvent.SELECTED) {
267
                      Object item = ((LabeledValue)ie.getItemSelectable().getSelectedObjects()[0]).getValue();
268
                    if (ExpressionBuilder.OPERATOR_IS_NULL.equals(item) || ExpressionBuilder.OPERATOR_IS_NOT_NULL.equals(item)) {
269
                        lblNull.setEnabled(false);
270
                        lblNull.setVisible(false);
271
                        cboValue.setEnabled(false);
272
                        cboValue.setVisible(false);
273
                    } else {
274
                        lblNull.setEnabled(true);
275
                        lblNull.setVisible(true);
276
                        cboValue.setEnabled(true);
277
                        cboValue.setVisible(true);
278
                    }
279
                    }
280
                }
281
            });
282
            
283
            if (this.ddnLogicalOperators != null) {
284
                DefaultComboBoxModel modelLogicalOperators = new DefaultComboBoxModel();
285
                for (LabeledValue op : logicalOperators) {
286
                    modelLogicalOperators.addElement(op);
287
                }
288
                this.ddnLogicalOperators.setModel(modelLogicalOperators);
289
                this.ddnLogicalOperators.setSelectedIndex(1);
290
            }
291
            
292
//            this.ddnNullOperators = new DropDownLabelIcon(lblNull);
293
            this.ddnNullBehavior = toolsSwingManager.createDropDownIcon(lblNull);
294
            this.ddnNullBehavior.setVisibleDropdownArrow(false);
295
            DefaultComboBoxModel modelNullOperators = new DefaultComboBoxModel();
296
            for (LabeledValue op : nullBehaviors) {
297
                modelNullOperators.addElement(op);
298
            }
299
            this.ddnNullBehavior.setModel(modelNullOperators);
300
            this.ddnNullBehavior.setIcons(nullOperatorsIcons);
301
            this.ddnNullBehavior.setSelectedIndex(0);
302
            FeatureType featureType = parameters.getFeatureType(store);
303
            Search search = (Search) ToolsLocator.getComplementsManager().get(
304
                    Search.COMPLEMENT_MANE, featureType
305
            );
306
            List<Search.OrderedAttribute> orderedAttributes = search.getOrderedAttributes(
307
                    Search.BASIC_TYPES_FILTER,
308
                    Search.STR_INT_LONG_LABEL_ORDER,
309
                    SIZE_ORDERED_ATTRIBUTES
310
            );
311
            List<ImageIcon> icons = new ArrayList<>();
262 312
//            DataTypesManager dataTypeManager = ToolsLocator.getDataTypesManager();
263
      IconTheme iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
264
      DefaultComboBoxModel model = new DefaultComboBoxModel();
265
      for (Search.OrderedAttribute attr : orderedAttributes) {
266
        FeatureAttributeDescriptor attrdesc = attr.getDescriptor();
267
        Field field = new Field(
268
                new FeatureAttributeDescriptor[]{attrdesc},
269
                this.store,
270
                attrdesc,
271
                attr.getType()
272
        );
273
        model.addElement(field);
274
        String iconName = attrdesc.getDataType().getIconName();
275
        if (iconTheme.exists(iconName)) {
276
          icons.add(iconTheme.get(iconName));
277
        } else {
278
          icons.add(null);
279
        }
280
      }
281
      
282
      this.ddnFields.setIcons(icons);
283
      this.ddnFields.setModel(model);
284
      this.ddnFields.addItemListener(new ItemListener() {
285
        @Override
286
        public void itemStateChanged(ItemEvent e) {
287
          if (e.getStateChange() == ItemEvent.SELECTED) {
288
            doUpdateValuesList();
289
          }
313
            IconTheme iconTheme = ToolsSwingLocator.getIconThemeManager().getCurrent();
314
            DefaultComboBoxModel model = new DefaultComboBoxModel();
315
            for (Search.OrderedAttribute attr : orderedAttributes) {
316
                FeatureAttributeDescriptor attrdesc = attr.getDescriptor();
317
                Field field = new Field(
318
                        new FeatureAttributeDescriptor[]{attrdesc},
319
                        this.store,
320
                        attrdesc,
321
                        attr.getType()
322
                );
323
                model.addElement(field);
324
                String iconName = attrdesc.getDataType().getIconName();
325
                if (iconTheme.exists(iconName)) {
326
                    icons.add(iconTheme.get(iconName));
327
                } else {
328
                    icons.add(null);
329
                }
330
            }
290 331

  
291
        }
292
      });
293
      
294
      this.cboValue.addItemListener(new ItemListener() {
295
        @Override
296
        public void itemStateChanged(ItemEvent e) {
297
          if (e.getStateChange() == ItemEvent.SELECTED) {
298
              if (cboValue.getSelectedItem()!=null && cboValue.getSelectedItem() instanceof LabeledValue ) {
299
                if (Objects.equals(((LabeledValue)cboValue.getSelectedItem()).getValue(), LOAD_MORE_ELEMENTS)) {
300
                    setUpdateValuesLimits(updateValuesTimeLimit+10, updateValuesFeaturesLimit+20000);
332
            this.ddnFields.setIcons(icons);
333
            this.ddnFields.setModel(model);
334
            this.ddnFields.addItemListener(new ItemListener() {
335
                @Override
336
                public void itemStateChanged(ItemEvent e) {
337
                    if (e.getStateChange() == ItemEvent.SELECTED) {
338
                        doUpdateValuesList();
339
                    }
340

  
301 341
                }
302
              }
303
          }
342
            });
343

  
344
            this.cboValue.addItemListener(new ItemListener() {
345
                @Override
346
                public void itemStateChanged(ItemEvent e) {
347
                    if (e.getStateChange() == ItemEvent.SELECTED) {
348
                        if (cboValue.getSelectedItem() != null && cboValue.getSelectedItem() instanceof LabeledValue) {
349
                            if (Objects.equals(((LabeledValue) cboValue.getSelectedItem()).getValue(), LOAD_MORE_ELEMENTS)) {
350
                                setUpdateValuesLimits(updateValuesTimeLimit + 10, updateValuesFeaturesLimit + 20000);
351
                            }
352
                        }
353
                    }
354
                }
355
            });
356

  
357
            this.lblExtraFields.addMouseListener(new MouseAdapter() {
358
                @Override
359
                public void mouseClicked(MouseEvent e) {
360
                    doSelectMoreFields();
361
                }
362
            });
363

  
364
//      clear();
365
        } catch (Exception ex) {
366
            throw new RuntimeException(ex);
304 367
        }
305
      });
306
      
307
      this.lblExtraFields.addMouseListener(new MouseAdapter() {
308
        @Override
309
        public void mouseClicked(MouseEvent e) {
310
          doSelectMoreFields();
311
        }
312
      });
313
      
314
//      clear();
315
    } catch (Exception ex) {
316
      throw new RuntimeException(ex);
317 368
    }
318
  }
319 369

  
320
  private FeatureType getFeatureType() {
321
    try {
322
      return this.store.getDefaultFeatureType();
323
    } catch (DataException ex) {
324
      return null;
370
    private FeatureType getFeatureType() {
371
        try {
372
            return this.store.getDefaultFeatureType();
373
        } catch (DataException ex) {
374
            return null;
375
        }
325 376
    }
326
  }
327 377

  
328
  private void doSelectMoreFields() {
329
    DefaultFeatureAttributeSelectionPanel panel = new DefaultFeatureAttributeSelectionPanel(store, parameters.getFeatureType(store));
330
    WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
331
    final Dialog dialog = winManager.createDialog(
332
            panel,
333
            "Select attribute",
334
            null,
335
            WindowManager_v2.BUTTONS_OK_CANCEL
336
    );
337
    dialog.addActionListener((ActionEvent e) -> {
338
      if (dialog.getAction() == WindowManager_v2.BUTTONS_OK) {
339
        doAddAndSelect(
340
                panel.getSelectedStore(),
341
                panel.getSelectedAttributeDescriptor(),
342
                panel.getSelectedPath()
378
    private void doSelectMoreFields() {
379
        DefaultFeatureAttributeSelectionPanel panel = new DefaultFeatureAttributeSelectionPanel(store, parameters.getFeatureType(store));
380
        WindowManager_v2 winManager = (WindowManager_v2) ToolsSwingLocator.getWindowManager();
381
        final Dialog dialog = winManager.createDialog(
382
                panel,
383
                "Select attribute",
384
                null,
385
                WindowManager_v2.BUTTONS_OK_CANCEL
343 386
        );
344
      }
345
    });
346
    dialog.show(WindowManager.MODE.DIALOG);
387
        dialog.addActionListener((ActionEvent e) -> {
388
            if (dialog.getAction() == WindowManager_v2.BUTTONS_OK) {
389
                doAddAndSelect(
390
                        panel.getSelectedStore(),
391
                        panel.getSelectedAttributeDescriptor(),
392
                        panel.getSelectedPath()
393
                );
394
            }
395
        });
396
        dialog.show(WindowManager.MODE.DIALOG);
347 397

  
348
  }
349

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff