Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

ListGrid constantly resizing

$
0
0
Hi

We currently have an issue where ListGrids are constantly resizing causing scrollbars to constantly pop in and out of existence. This happens in Chrome and IE 10. Issue does not appear on the online showcase however.

See http://i138.photobucket.com/albums/q...013-gGMDsa.gif

1) SmartClient Version: v8.3p_2013-04-02/PowerEdition Deployment (built 2013-04-02)
GWT Version: 2.4.0
OS Version: Windows 7 x64 Service Pack 1

2) Chrome Version 29.0.1547.66 m and IE 10 (IE 10 Compat mode does not have this issue)

3) SmartGWT theme config (.gwt.xml)
<inherits name="com.smartgwtpower.SmartGwtPowerNoTheme"/>
(With custom stylesheet)

4) Code sample for one of the widgets(List Grids):

Code:

public class DashboardView extends PortalLayout {

        protected DSGridCounterPortlet resToday;

        protected ClientFactory clientFactory;
        protected EresConstants constants;

        public DashboardView(ClientFactory clientFactory) {
                super(2);
                this.clientFactory = clientFactory;
                this.constants = clientFactory.getConstants();
        }

        @Override
        public void onInit() {
                super.onInit();

                setShowColumnMenus(false);

                setPadding(15);

                createResDateToday();

                addPortlet(resToday, 0, 0);

        }

        protected void createResDateToday() {
                resToday = new DSGridCounterPortlet(DataSource.get("Dashboard_ResDate_Channel"), constants.newReservationsReceivedToday());
                resToday.setMargin(10);
        }
}

Code:

public class DSGridCounterPortlet extends Portlet {

        private HLayout headerPanel = new HLayout();
        private HTMLFlow countHTML = new HTMLFlow();
        private HTMLFlow headerHTML = new HTMLFlow();
        private String title;

        private DataSource dataSource;

        public DSGridCounterPortlet(DataSource dataSource, String title) {
                this.dataSource = dataSource;
                this.title = title;
                setShowHeader(false);
                setHeaderControls();
        }

        @Override 
        protected void onInit() {
                super.onInit();
                setTitle(" ");
                setWidth("*");

                setPadding(15);
                setStyleName("dashboard-box");

                OneWidgetStack contentContainer = createContentContainer();

                headerPanel.setHeight(30);
                contentContainer.setHeight("*");
                addItem(headerPanel);
                addItem(contentContainer);

                countHTML.setPadding(5);
                countHTML.setHeight(35);
                countHTML.setWidth(40);
                countHTML.setStyleName("dashboard-box-counter");
                headerHTML.setContents(title);
                headerHTML.setWidth100();
                headerHTML.setHeight(30);
                headerHTML.setStyleName("dashboard-box-header");

                headerPanel.addMember(countHTML);
                headerPanel.addMember(headerHTML);

                contentContainer.setWidget(createListGrid());       
        }

        private OneWidgetStack createContentContainer() {
                OneWidgetStack contentContainer = new OneWidgetStack();
                contentContainer.setStyleName("dashboard-box-content");
                contentContainer.setWidth100();
                return contentContainer;
        }

        private ListGrid createListGrid() {
                final ListGrid listGrid = new ListGrid();
                listGrid.setWidth100();
                listGrid.setHeight100();
                listGrid.setAutoFetchData(true);
                listGrid.setDataSource(dataSource);
                listGrid.setShowHeaderMenuButton(false);
                listGrid.addDataArrivedHandler(new DataArrivedHandler() {

                        @Override
                        public void onDataArrived(DataArrivedEvent event) {
                                int count = 0;
                                for (int i=0; i<listGrid.getTotalRows(); i++) {
                                        ListGridRecord record = listGrid.getRecord(i);
                                        count += record.getAttributeAsInt("Count");
                                }
                                countHTML.setContents(Integer.toString(count));
                                if (countHTML.getContents().length() > 5) {
                                        countHTML.setWidth(120);
                                }                                                                               
                                else if (countHTML.getContents().length() > 4) {
                                        countHTML.setWidth(100);
                                }                                                                               
                                else if (countHTML.getContents().length() > 3) {
                                        countHTML.setWidth(80);
                                }                                       
                                else if (countHTML.getContents().length() > 2) {
                                        countHTML.setWidth(60);
                                }
                        }
                });

                return listGrid;
        }

}

Code:

public class OneWidgetStack extends VStack implements AcceptsOneWidget {

    @Override 
    protected void onInit() {
        super.onInit();
    }
   
        @Override
        public void setWidget(IsWidget w) {
        Canvas[] membersToRemove = getMembers();
        for(Canvas member : membersToRemove) {
            removeMember(member);
        }
        if (w != null) {
                addMember((Widget)w);
        }
        }

}


Viewing all articles
Browse latest Browse all 4756

Trending Articles