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