@@ -198,6 +198,7 @@ public static TableColumnManager getInstance() {
198
198
public void addColumns (TableColumnCore [] itemsToAdd ) {
199
199
try {
200
200
items_mon .enter ();
201
+ Map <String ,Map > configCache = new HashMap <>();
201
202
for (int i = 0 ; i < itemsToAdd .length ; i ++) {
202
203
TableColumnCore item = itemsToAdd [i ];
203
204
if (item == null || item .isRemoved ()){
@@ -213,7 +214,11 @@ public void addColumns(TableColumnCore[] itemsToAdd) {
213
214
}
214
215
if (!mTypes .containsKey (name )) {
215
216
mTypes .put (name , item );
216
- Map mapColumnConfig = getTableConfigMap (sTableID );
217
+ Map mapColumnConfig = configCache .get ( sTableID );
218
+ if (mapColumnConfig == null ){
219
+ mapColumnConfig = getTableConfigMap (sTableID );
220
+ configCache .put (sTableID , mapColumnConfig );
221
+ }
217
222
item .loadSettings (mapColumnConfig );
218
223
}
219
224
}
@@ -739,7 +744,13 @@ public Map getTableConfigMap(String sTableID) {
739
744
Map mapTablesConfig = getTablesConfigMap ();
740
745
741
746
Map mapTableConfig = (Map ) mapTablesConfig .get (key );
747
+
748
+ if (mapTableConfig == null ) {
749
+ mapTableConfig = getTableConfigDefaultMap ( sTableID );
750
+ }
751
+
742
752
if (mapTableConfig == null ) {
753
+
743
754
mapTableConfig = new HashMap ();
744
755
mapTablesConfig .put (key , mapTableConfig );
745
756
} else {
@@ -767,9 +778,73 @@ public void setTableConfigMap(String sTableID, Map mapTableConfig ) {
767
778
Map mapTablesConfig = getTablesConfigMap ();
768
779
769
780
mapTablesConfig .put (key , mapTableConfig );
770
- markDirty ();
781
+
782
+ markDirty ();
783
+ }
784
+ }
785
+
786
+ public static String
787
+ createSubViewID (
788
+ String base ,
789
+ String sub )
790
+ {
791
+ return ( base + "::" + sub );
792
+ }
793
+
794
+ public static String
795
+ getBaseViewID (
796
+ String id )
797
+ {
798
+ int pos = id .lastIndexOf ( "::" );
799
+
800
+ if ( pos == -1 ){
801
+
802
+ return ( id );
803
+
804
+ }else {
805
+
806
+ return ( id .substring ( 0 , pos ));
807
+ }
808
+ }
809
+
810
+ private Map
811
+ getTableConfigDefaultMap (
812
+ String sTableID )
813
+ {
814
+ sTableID = getBaseViewID ( sTableID );
815
+ synchronized (this ) {
816
+ String key = "TableDefault." + sTableID ;
817
+
818
+ Map mapTablesConfig = getTablesConfigMap ();
819
+
820
+ return ((Map )mapTablesConfig .get (key ));
771
821
}
772
822
}
823
+
824
+ private void
825
+ setTableConfigDefaultMap (
826
+ String sTableID ,
827
+ Map mapTableConfigDefault )
828
+ {
829
+ sTableID = getBaseViewID ( sTableID );
830
+ synchronized (this ) {
831
+ String key = "TableDefault." + sTableID ;
832
+
833
+ Map mapTablesConfig = getTablesConfigMap ();
834
+
835
+ mapTablesConfig .put (key , mapTableConfigDefault );
836
+
837
+ markDirty ();
838
+ }
839
+ }
840
+
841
+ public void
842
+ setTableConfigDefault (
843
+ String sTableID ,
844
+ Map mapTableConfig )
845
+ {
846
+ setTableConfigDefaultMap ( sTableID , mapTableConfig );
847
+ }
773
848
774
849
public void setAutoHideOrder (String sTableID , String [] autoHideOrderColumnIDs ) {
775
850
ArrayList autoHideOrderList = new ArrayList (autoHideOrderColumnIDs .length );
0 commit comments