SmartGWT Version
v12.1p_2021-07-24 / LGPL Edition
Browser
Chrome Version 92.0.4515.107 (Official Build) (x86_64)
Hello,
I am having an issue where a third party widget (Ace Editor) is scrolling by itself in a ListGrid Expansion component. I have put a sample module below.
The sample module has 2 top level components.
The first component is the AceEditor by itself as a member of an HLayout. When you enter text in this editor, everything works as expected.
The second top level component is the AceEditor in a ListGrid's expansion component. When you enter text in this AceEditor, it scrolls to the right, hiding the text that has been typed. The issue goes away when the browser is resized.
I haven't included the AceGwt project, but it's available at https://github.com/daveho/AceGWT. I'd be happy to provide the AceGWT code if it would help.
Please let me know if I'm doing something wrong or if there is a workaround to this issue. Thanks in advance :-)
AceEditorModule.java
index.html
AceEditorModule.gwt.xml
v12.1p_2021-07-24 / LGPL Edition
Browser
Chrome Version 92.0.4515.107 (Official Build) (x86_64)
Hello,
I am having an issue where a third party widget (Ace Editor) is scrolling by itself in a ListGrid Expansion component. I have put a sample module below.
The sample module has 2 top level components.
The first component is the AceEditor by itself as a member of an HLayout. When you enter text in this editor, everything works as expected.
The second top level component is the AceEditor in a ListGrid's expansion component. When you enter text in this AceEditor, it scrolls to the right, hiding the text that has been typed. The issue goes away when the browser is resized.
I haven't included the AceGwt project, but it's available at https://github.com/daveho/AceGWT. I'd be happy to provide the AceGWT code if it would help.
Please let me know if I'm doing something wrong or if there is a workaround to this issue. Thanks in advance :-)
AceEditorModule.java
Code:
import com.google.gwt.core.client.EntryPoint; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.grid.ListGridField; import com.smartgwt.client.widgets.grid.ListGridRecord; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.VLayout; import edu.ycp.cs.dh.acegwt.client.ace.AceEditor; public class AceEditorModule implements EntryPoint { @Override public void onModuleLoad() { final ListGridRecord record = new ListGridRecord(); record.setAttribute("id", 1); record.setAttribute("description", "Lorem Ipsum"); final ListGrid listGrid = new ListGrid() { @Override protected Canvas getExpansionComponent(final ListGridRecord record) { VLayout layout = new VLayout(5); layout.addMember(getAceEditorInstance("AceEditor in expansion component.")); layout.setHeight(500); return layout; } }; listGrid.setCanExpandRecords(true); listGrid.setHeight100(); listGrid.setWidth100(); listGrid.setFields(new ListGridField("id", "Id", 40), new ListGridField("description", "Description")); listGrid.setRecords(new ListGridRecord[]{record}); final HLayout layout = new HLayout(4); layout.setPadding(4); layout.setWidth100(); layout.setHeight100(); layout.addMember(getAceEditorInstance("AceEditor in layout")); layout.addMember(listGrid); layout.draw(); } private AceEditor getAceEditorInstance(String text) { AceEditor aceEditor = new AceEditor(); aceEditor.startEditor(); aceEditor.setHeight("100%"); aceEditor.setWidth("100%"); aceEditor.setValue(text); return aceEditor; } }
Code:
<!doctype html> <html> <head> <link href="AceEditorModule/sc/skins/Graphite/skin_styles.css" rel="stylesheet"></link> <script src="AceEditorModule/AceEditorModule.nocache.js"></script> <script src="AceEditorModule/sc/modules/ISC_Core.js"></script> <script src="AceEditorModule/sc/modules/ISC_Foundation.js"></script> <script src="AceEditorModule/sc/modules/ISC_Containers.js"></script> <script src="AceEditorModule/sc/modules/ISC_Grids.js"></script> <script src="AceEditorModule/sc/modules/ISC_Forms.js"></script> <script src="AceEditorModule/sc/modules/ISC_RichTextEditor.js"></script> <script src="AceEditorModule/sc/modules/ISC_Calendar.js"></script> <script src="AceEditorModule/sc/modules/ISC_DataBinding.js"></script> <script src="AceEditorModule/sc/modules/ISC_Drawing.js"></script> <script src="AceEditorModule/sc/modules/ISC_PluginBridges.js"></script> <!-- ***** Include the ace javascript files*****--> <script src="AceEditorModule/ace/ace.js"></script> <script src="AceEditorModule/ace/mode-javascript.js"></script> <!-- **********--> <script> var isomorphicDir="AceEditorModule/sc/"; isc.Page.setSkinDir("AceEditorModule/sc/skins/Graphite/") </script> <script src="AceEditorModule/sc/skins/Graphite/load_skin.js"></script> </head> <body> </body> </html>
Code:
<?xml version="1.0" encoding="UTF-8"?> <module rename-to='AceEditorModule'> <inherits name='com.google.gwt.user.User'/> <inherits name="com.smartgwt.debug.SmartGwtDebug"/> <inherits name="com.smartgwt.SmartGwtNoScript"/> <inherits name="com.smartclient.theme.graphite.Graphite"/> <!-- ***** Inherit the AceGWT Component *****--> <inherits name="edu.ycp.cs.dh.acegwt.AceGWT"/> <!-- ***** *****--> <entry-point class='com.collegenet.ace.AceEditorModule'/> <source path='ace'/> </module>
Comment