19
19
import com .smartgwt .client .widgets .grid .ListGrid ;
20
20
import com .smartgwt .client .widgets .grid .ListGridField ;
21
21
import com .smartgwt .client .widgets .grid .ListGridRecord ;
22
- import com .smartgwt .client .widgets .grid .events .DataArrivedEvent ;
23
22
import com .smartgwt .client .widgets .layout .Layout ;
24
23
import com .smartgwt .client .widgets .layout .VLayout ;
25
24
import com .smartgwt .client .widgets .menu .Menu ;
@@ -46,6 +45,8 @@ public class TemplatesPanel extends VLayout {
46
45
47
46
static final Canvas SELECT_TEMPLATE = new HTMLPanel (" " + I18N .message ("selecttemplate" ));
48
47
48
+ protected Long templateIdToSelect ;
49
+
49
50
public TemplatesPanel () {
50
51
setWidth100 ();
51
52
}
@@ -152,8 +153,18 @@ public void onSuccess(GUITemplate template) {
152
153
});
153
154
});
154
155
155
- list .addDataArrivedHandler ((DataArrivedEvent event ) -> infoPanel
156
- .setMessage (I18N .message ("showtemplates" , Integer .toString (list .getTotalRows ()))));
156
+ list .addDataArrivedHandler (event -> {
157
+ infoPanel .setMessage (I18N .message ("showtemplates" , Integer .toString (list .getTotalRows ())));
158
+ if (templateIdToSelect != null )
159
+ for (ListGridRecord rec : list .getRecords ()) {
160
+ if (templateIdToSelect .longValue () == rec .getAttributeAsDouble ("id" ).longValue ()) {
161
+ list .scrollToRow (list .getRowNum (rec ));
162
+ list .selectRecord (rec );
163
+ break ;
164
+ }
165
+ }
166
+ templateIdToSelect = null ;
167
+ });
157
168
158
169
detailsContainer .setAlign (Alignment .CENTER );
159
170
detailsContainer .addMember (details );
@@ -191,6 +202,7 @@ public void onSuccess(Void result) {
191
202
clone .setTitle (I18N .message ("clone" ));
192
203
clone .addClickHandler (event -> TemplateService .Instance .get ().clone (selectedTemplateId ,
193
204
selectedRecord .getAttribute ("name" ) + "-Clone" , new AsyncCallback <GUITemplate >() {
205
+
194
206
@ Override
195
207
public void onFailure (Throwable caught ) {
196
208
GuiLog .serverError (caught );
@@ -199,18 +211,11 @@ public void onFailure(Throwable caught) {
199
211
@ Override
200
212
public void onSuccess (GUITemplate templateClone ) {
201
213
list .deselectAllRecords ();
202
- ListGridRecord newRecord = new ListGridRecord ();
203
- newRecord .setAttribute ("id" , templateClone .getId ());
204
- newRecord .setAttribute ("readonly" , "" + templateClone .isReadonly ());
205
- newRecord .setAttribute ("name" , templateClone .getName ());
206
- newRecord .setAttribute (LABEL ,
207
- templateClone .getLabel () != null ? templateClone .getLabel () : templateClone .getName ());
208
- newRecord .setAttribute (DESCRIPTION , templateClone .getDescription ());
209
- list .addData (newRecord );
210
- list .selectRecord (newRecord );
211
- list .scrollToRow (list .getRowNum (newRecord ));
214
+ list .refresh (new TemplatesDS (false , null , GUITemplate .TYPE_DEFAULT ));
215
+ templateIdToSelect = templateClone .getId ();
212
216
showTemplateDetails (templateClone );
213
217
}
218
+
214
219
}));
215
220
216
221
contextMenu .setItems (clone , delete );
0 commit comments