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

Is DynamicForm supposed to support Hilites?

$
0
0
Hi Isomorphic,

I just noticed that DynamicForm has also setHilites() javadoc'd.

Is this on purpose and expected to work or due to the fact that DynamicForm inherits from DataBoundComponent?
See this testcase (v10.0p_2015-05-19) I produced by chance (I wanted to apply to boundList, but just boundForm):
Code:

package com.smartgwt.sample.client;

import com.google.gwt.core.client.EntryPoint;
import com.smartgwt.client.core.KeyIdentifier;
import com.smartgwt.client.data.AdvancedCriteria;
import com.smartgwt.client.data.Criterion;
import com.smartgwt.client.data.DataSource;
import com.smartgwt.client.data.Hilite;
import com.smartgwt.client.data.Record;
import com.smartgwt.client.types.OperatorId;
import com.smartgwt.client.types.SelectionStyle;
import com.smartgwt.client.types.SortArrow;
import com.smartgwt.client.util.PageKeyHandler;
import com.smartgwt.client.util.Page;
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.
        */
        public void onModuleLoad() {
                KeyIdentifier debugKey = new KeyIdentifier();
                debugKey.setCtrlKey(true);
                debugKey.setKeyName("D");

                Page.registerKey(debugKey, new PageKeyHandler() {
                        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() {
                        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>SDM modified while shut down.</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() {
                        public void onRecordClick(RecordClickEvent event) {
                                Record record = event.getRecord();
                                boundForm.editRecord(record);
                                saveBtn.enable();
                                boundViewer.viewSelectedData(boundList);
                        }
                });
                boundList.setHilites(new Hilite[] { new Hilite() {
                        {
                                AdvancedCriteria ac = new AdvancedCriteria(OperatorId.OR);
                                ac.addCriteria(new Criterion("commonName", OperatorId.EQUALS, "Ostrich"));
                                ac.addCriteria(new Criterion("lifeSpan", OperatorId.EQUALS, 50));
                                setCriteria(ac);
                                setCssText("font-weight:bold; color:#0000FF;");
                        }
                }, new Hilite() {
                        {
                                AdvancedCriteria ac = new AdvancedCriteria(new Criterion("commonName", OperatorId.EQUALS, "Lion"));
                                setCriteria(ac);
                                setCssText("font-weight:bold; color:#00FF00;");
                        }
                } });
               
                vStack.addMember(boundList);

                boundForm = new DynamicForm();
                boundForm.setNumCols(6);
                boundForm.setAutoFocus(false);
                boundForm.setHilites(new Hilite[] { new Hilite() {
                        {
                                AdvancedCriteria ac = new AdvancedCriteria(OperatorId.OR);
                                ac.addCriteria(new Criterion("commonName", OperatorId.EQUALS, "Ostrich"));
                                ac.addCriteria(new Criterion("lifeSpan", OperatorId.EQUALS, 50));
                                setCriteria(ac);
                                setCssText("font-weight:bold; color:#FF0000;");
                        }
                }, new Hilite() {
                        {
                                AdvancedCriteria ac = new AdvancedCriteria(new Criterion("commonName", OperatorId.EQUALS, "Lion"));
                                setCriteria(ac);
                                setCssText("font-weight:bold; color:#FF0000;");
                        }
                } });
                vStack.addMember(boundForm);

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

                saveBtn = new IButton("Save");
                saveBtn.addClickHandler(new ClickHandler() {
                        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() {
                        public void onClick(ClickEvent event) {
                                boundForm.editNewRecord();
                                saveBtn.enable();
                        }
                });
                hLayout.addMember(newBtn);

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

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

                IButton fetchBtn = new IButton("Fetch");
                fetchBtn.addClickHandler(new ClickHandler() {
                        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();
        }

        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
Blama

Viewing all articles
Browse latest Browse all 4756

Trending Articles