44import java .util .List ;
55import java .util .stream .Collectors ;
66
7- import com .logicaldoc .gui .common .client .Feature ;
87import com .logicaldoc .gui .common .client .DefaultAsyncCallback ;
8+ import com .logicaldoc .gui .common .client .Feature ;
99import com .logicaldoc .gui .common .client .Session ;
1010import com .logicaldoc .gui .common .client .beans .GUIParameter ;
1111import com .logicaldoc .gui .common .client .data .StoresDS ;
1212import com .logicaldoc .gui .common .client .grid .IdListGridField ;
1313import com .logicaldoc .gui .common .client .grid .RefreshableListGrid ;
1414import com .logicaldoc .gui .common .client .i18n .I18N ;
1515import com .logicaldoc .gui .common .client .log .GuiLog ;
16+ import com .logicaldoc .gui .common .client .util .AwesomeFactory ;
1617import com .logicaldoc .gui .common .client .util .ItemFactory ;
1718import com .logicaldoc .gui .common .client .util .LD ;
1819import com .logicaldoc .gui .common .client .util .Util ;
1920import com .logicaldoc .gui .frontend .client .services .SettingService ;
2021import com .smartgwt .client .data .Record ;
21- import com .smartgwt .client .types .Alignment ;
22- import com .smartgwt .client .types .ListGridFieldType ;
2322import com .smartgwt .client .types .SelectionStyle ;
2423import com .smartgwt .client .util .SC ;
2524import com .smartgwt .client .widgets .Canvas ;
2625import com .smartgwt .client .widgets .form .fields .SelectItem ;
26+ import com .smartgwt .client .widgets .grid .CellFormatter ;
2727import com .smartgwt .client .widgets .grid .ListGrid ;
2828import com .smartgwt .client .widgets .grid .ListGridField ;
2929import com .smartgwt .client .widgets .grid .ListGridRecord ;
@@ -43,8 +43,6 @@ public class StoresPanel extends VLayout {
4343
4444 private static final String STORE = "store." ;
4545
46- private static final String DATABASE_EDIT = "database_edit" ;
47-
4846 private static final String VALUE = "value" ;
4947
5048 private static final String WRITE = "write" ;
@@ -139,14 +137,21 @@ protected Canvas getExpansionComponent(final ListGridRecord rec) {
139137
140138 ListGridField type = prepareTypeField ();
141139
142- ListGridField write = new ListGridField (WRITE , " " , 20 );
143- write .setType (ListGridFieldType .IMAGE );
140+ ListGridField write = new ListGridField (WRITE , " " , 30 );
144141 write .setCanSort (false );
145- write .setAlign (Alignment .CENTER );
146- write .setShowDefaultContextMenu (false );
147- write .setImageURLPrefix (Util .imagePrefix ());
148- write .setImageURLSuffix (".png" );
149142 write .setCanFilter (false );
143+ write .setCellFormatter (new CellFormatter () {
144+
145+ @ Override
146+ public String format (Object value , ListGridRecord rec , int rowNum , int colNum ) {
147+ String content = "" ;
148+ if (Boolean .TRUE .equals (rec .getAttributeAsBoolean (WRITE ))) {
149+ content = "<div style='display: flex; text-align: center; justify-content: center;'>"
150+ + AwesomeFactory .getIconButtonHTML ("database" , null , "default" , null , null ) + "</div>" ;
151+ }
152+ return content ;
153+ }
154+ });
150155
151156 storesGrid .setFields (id , write , name , type , path );
152157 storesGrid .setAutoFetchData (true );
@@ -238,7 +243,7 @@ private void refresh() {
238243 * Prepares the context menu
239244 */
240245 private void showContextMenu () {
241- MenuItem makeWrite = prepareMakeWriteMenuItem ();
246+ MenuItem makeWrite = prepareMakeDefaultWriteMenuItem ();
242247
243248 MenuItem test = prepareTestMenuItem ();
244249
@@ -260,7 +265,7 @@ private MenuItem prepareDeleteMenuItem() {
260265 doRemoveStore (selectedStoreId );
261266 }
262267 }));
263- delete .setEnabled (!Session .get ().isDemo () && !DATABASE_EDIT . equals ( selectedRecord .getAttributeAsString (WRITE ) ));
268+ delete .setEnabled (!Session .get ().isDemo () && !selectedRecord .getAttributeAsBoolean (WRITE ));
264269 return delete ;
265270 }
266271
@@ -298,17 +303,17 @@ public void onSuccess(Boolean result) {
298303 return test ;
299304 }
300305
301- private MenuItem prepareMakeWriteMenuItem () {
306+ private MenuItem prepareMakeDefaultWriteMenuItem () {
302307 MenuItem makeWrite = new MenuItem ();
303308 makeWrite .setTitle (I18N .message ("makedefwritestore" ));
304309 makeWrite .addClickHandler (event -> {
305310 ListGridRecord [] recs = storesGrid .getRecords ();
306311 for (ListGridRecord rec : recs ) {
307- rec .setAttribute (WRITE , "blank" );
312+ rec .setAttribute (WRITE , false );
308313 storesGrid .refreshRow (storesGrid .getRowNum (rec ));
309314 }
310315 ListGridRecord selectedRecord = storesGrid .getSelectedRecord ();
311- selectedRecord .setAttribute (WRITE , DATABASE_EDIT );
316+ selectedRecord .setAttribute (WRITE , true );
312317 storesGrid .refreshRow (storesGrid .getRowNum (storesGrid .getSelectedRecord ()));
313318 });
314319 makeWrite .setEnabled (!Session .get ().isDemo ());
@@ -345,7 +350,7 @@ private List<GUIParameter> collectSettings() {
345350 new GUIParameter (STORE + storeId + ".dir" , storeRecord .getAttributeAsString ("path" ).trim ()));
346351 settings .add (
347352 new GUIParameter (STORE + storeId + ".type" , storeRecord .getAttributeAsString ("type" ).trim ()));
348- if (DATABASE_EDIT . equals ( storeRecord .getAttributeAsString (WRITE ) )) {
353+ if (storeRecord .getAttributeAsBoolean (WRITE )) {
349354 settings .add (new GUIParameter ("store.write" , storeId ));
350355 }
351356
@@ -398,7 +403,7 @@ private void onAddStore() {
398403 }
399404 }
400405 }
401-
406+
402407 @ Override
403408 public boolean equals (Object other ) {
404409 return super .equals (other );
0 commit comments