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

IllegalStateException - Cannot change configuration property 'visibility' to hidden

$
0
0
hi isomorphic,

after upgrading from 4.1p_20140304 to 4.1p_20140311 i can't change the visibility of DynamicForm. i get this IllegalStateException.

Code:

Caused by: java.lang.IllegalStateException: Cannot change configuration property 'visibility' to hidden now that component isc_DynamicForm_0 has been created.
at com.smartgwt.client.widgets.BaseWidget.error(BaseWidget.java:728)
at com.smartgwt.client.widgets.BaseWidget.error(BaseWidget.java:716)
at com.smartgwt.client.widgets.BaseWidget.setAttribute(BaseWidget.java:740)
at com.smartgwt.client.widgets.Canvas.setVisibility(Canvas.java:4859)
at com.smartgwt.client.widgets.Canvas.setVisible(Canvas.java:8537)
at com.smartgwt.sample.client.BuiltInDS.onModuleLoad(BuiltInDS.java:181)

For troubleshooting demonstration I have the following line added to the sample.
Code:

boundForm.setVisible(false);
Code:

package com.smartgwt.sample.client;

import com.google.gwt.core.client.EntryPoint;
import com.smartgwt.client.core.KeyIdentifier;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.types.SortArrow;
import com.smartgwt.client.util.Page;
import com.smartgwt.client.util.PageKeyHandler;
import com.smartgwt.client.util.SC;
import com.smartgwt.client.widgets.IButton;
import com.smartgwt.client.widgets.Label;
import com.smartgwt.client.widgets.events.ClickEvent;
import com.smartgwt.client.widgets.events.ClickHandler;
import com.smartgwt.client.widgets.form.DynamicForm;
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.grid.events.RecordClickEvent;
import com.smartgwt.client.widgets.grid.events.RecordClickHandler;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.VStack;
import com.smartgwt.client.widgets.viewer.DetailViewer;

/**
 * Entry point classes define <code>onModuleLoad()</code>.
 */
public class BuiltInDS implements EntryPoint {
        private ListGrid boundList;
        private DynamicForm boundForm;
        private IButton saveBtn;
        private DetailViewer boundViewer;
        private IButton newBtn;

        /**
        * This is the entry point method.
        */
        @Override
        public void onModuleLoad() {
                KeyIdentifier debugKey = new KeyIdentifier();
                debugKey.setCtrlKey(true);
                debugKey.setKeyName("D");

                Page.registerKey(debugKey, new PageKeyHandler() {
                        @Override
                        public void execute(String keyName) {
                                SC.showConsole();
                        }
                });


                ListGrid grid = new ListGrid();
                grid.setLeft(20);
                grid.setTop(75);
                grid.setWidth(130);
                grid.setLeaveScrollbarGap(false);
                grid.setShowSortArrow(SortArrow.NONE);
                grid.setCanSort(false);
                grid.setFields(new ListGridField("dsTitle", "Select a DataSource"));
                grid.setData(new ListGridRecord[]{
                                new DSRecord("Animals", "animals"),
                                new DSRecord("Office Supplies", "supplyItem"),
                                new DSRecord("Employees", "employees")}
                                );
                grid.setSelectionType(SelectionStyle.SINGLE);
                grid.addRecordClickHandler(new RecordClickHandler() {
                        @Override
                        public void onRecordClick(RecordClickEvent event) {
                                DSRecord record = (DSRecord) event.getRecord();
                                bindComponents(record.getDsName());
                        }
                });

                grid.draw();

                VStack vStack = new VStack();
                vStack.setLeft(175);
                vStack.setTop(75);
                vStack.setWidth("70%");
                vStack.setMembersMargin(20);

                Label label = new Label();
                label.setContents("<ul>" +
                                "<li>select a datasource from the list at left to bind to these components</li>" +
                                "<li>click a record in the grid to view and edit that record in the form</li>" +
                                "<li>click <b>New</b> to start editing a new record in the form</li>" +
                                "<li>click <b>Save</b> to save changes to a new or edited record in the form</li>" +
                                "<li>click <b>Clear</b> to clear all fields in the form</li>" +
                                "<li>click <b>Filter</b> to filter (substring match) the grid based on form values</li>" +
                                "<li>click <b>Fetch</b> to fetch records (exact match) for the grid based on form values</li>" +
                                "<li>double-click a record in the grid to edit inline (press Return, or arrow/tab to another record, to save)</li>" +
                                "</ul>");
                vStack.addMember(label);

                boundList = new ListGrid();
                boundList.setHeight(200);
                boundList.setCanEdit(true);

                boundList.addRecordClickHandler(new RecordClickHandler() {
                        @Override
                        public void onRecordClick(RecordClickEvent event) {
                                Record record = event.getRecord();
                                boundForm.editRecord(record);
                                saveBtn.enable();
                                boundViewer.viewSelectedData(boundList);
                        }
                });
                vStack.addMember(boundList);

                boundForm = new DynamicForm();
                boundForm.setNumCols(6);
                boundForm.setAutoFocus(false);
                vStack.addMember(boundForm);

                HLayout hLayout = new HLayout(10);
                hLayout.setMembersMargin(10);
                hLayout.setHeight(22);

                saveBtn = new IButton("Save");
                saveBtn.addClickHandler(new ClickHandler() {
                        @Override
                        public void onClick(ClickEvent event) {
                                boundForm.saveData();
                                if (!boundForm.hasErrors()) {
                                        boundForm.clearValues();
                                        saveBtn.disable();
                                }
                        }
                });
                hLayout.addMember(saveBtn);

                newBtn = new IButton("New");
                newBtn.addClickHandler(new ClickHandler() {
                        @Override
                        public void onClick(ClickEvent event) {
                                boundForm.editNewRecord();
                                saveBtn.enable();
                        }
                });
                hLayout.addMember(newBtn);

                IButton clearBtn = new IButton("Clear");
                clearBtn.addClickHandler(new ClickHandler() {
                        @Override
                        public void onClick(ClickEvent event) {
                                boundForm.clearValues();
                                saveBtn.disable();
                        }
                });
                hLayout.addMember(clearBtn);

                IButton filterBtn = new IButton("Filter");
                filterBtn.addClickHandler(new ClickHandler() {
                        @Override
                        public void onClick(ClickEvent event) {
                                boundList.filterData(boundForm.getValuesAsCriteria());
                                saveBtn.disable();
                        }
                });
                hLayout.addMember(filterBtn);

                IButton fetchBtn = new IButton("Fetch");
                fetchBtn.addClickHandler(new ClickHandler() {
                        @Override
                        public void onClick(ClickEvent event) {
                                boundList.fetchData(boundForm.getValuesAsCriteria());
                                saveBtn.disable();
                        }
                });
                hLayout.addMember(fetchBtn);

                vStack.addMember(hLayout);

                boundViewer = new DetailViewer();
                vStack.addMember(boundViewer);

                vStack.draw();

                // java.lang.IllegalStateException
                if (0==0) {
                        boundForm.setVisible(false);
                }

        }

        private void bindComponents(String dsName) {
                DataSource ds = DataSource.get(dsName);
                boundList.setDataSource(ds);
                boundViewer.setDataSource(ds);
                boundForm.setDataSource(ds);
                boundList.fetchData();
                newBtn.enable();
                saveBtn.disable();
        }
}

best regards,
mirko

i used: Isomorphic SmartClient/SmartGWT Framework (v9.1p_2014-03-11/PowerEdition Deployment 2014-03-11)
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0'

Viewing all articles
Browse latest Browse all 4756

Trending Articles