Hi Isomorphic,
please see this testcase and attached screenshot:
As you can see in the screenshot, one SpinnerItem is not taking 50% of the possible place.
Also, the SKU-title is not as wide as the 1st title column.
My aim is to have not-so-wide and wide FormItems in the same form. In order not to squander place and keep the DynamicForm compact, I try to place narrow items belongs to each other next to each other (e.g. given name and surname).
I'm using v10.0p_2015-08-24/PowerEdition Deployment.
Best regards
Blama
please see this testcase and attached screenshot:
Code:
package com.smartgwt.sample.client; import java.util.Date; import com.google.gwt.core.client.EntryPoint; import com.google.gwt.i18n.client.DateTimeFormat; import com.google.gwt.i18n.client.DateTimeFormat.PredefinedFormat; 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.types.AutoFitWidthApproach; import com.smartgwt.client.types.OperatorId; import com.smartgwt.client.types.ReadOnlyDisplayAppearance; import com.smartgwt.client.util.DateDisplayFormatter; import com.smartgwt.client.util.DateUtil; import com.smartgwt.client.util.PageKeyHandler; import com.smartgwt.client.util.Page; import com.smartgwt.client.util.SC; import com.smartgwt.client.widgets.Button; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.DateChooser; import com.smartgwt.client.widgets.IButton; import com.smartgwt.client.widgets.Window; 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.form.fields.BooleanItem; import com.smartgwt.client.widgets.form.fields.ComboBoxItem; import com.smartgwt.client.widgets.form.fields.DateItem; import com.smartgwt.client.widgets.form.fields.FormItem; import com.smartgwt.client.widgets.form.fields.FormItemIcon; import com.smartgwt.client.widgets.form.fields.HiddenItem; import com.smartgwt.client.widgets.form.fields.LinkItem; import com.smartgwt.client.widgets.form.fields.SelectItem; import com.smartgwt.client.widgets.form.fields.SpinnerItem; import com.smartgwt.client.widgets.form.fields.TextAreaItem; import com.smartgwt.client.widgets.form.fields.TextItem; import com.smartgwt.client.widgets.form.fields.events.FormItemClickHandler; import com.smartgwt.client.widgets.form.fields.events.FormItemIconClickEvent; import com.smartgwt.client.widgets.grid.ListGrid; import com.smartgwt.client.widgets.layout.HLayout; import com.smartgwt.client.widgets.layout.SectionHeader; import com.smartgwt.client.widgets.layout.SectionStack; import com.smartgwt.client.widgets.layout.VLayout; import com.smartgwt.client.widgets.tab.TabSet; public class BuiltInDS implements EntryPoint { private VLayout vL; private TestForm tF; private TestWindow tW; private HLayout hL; public void onModuleLoad() { DefaultApperanceSetter.setDefaultApperance(); KeyIdentifier debugKey = new KeyIdentifier(); debugKey.setCtrlKey(true); debugKey.setKeyName("D"); Page.registerKey(debugKey, new PageKeyHandler() { public void execute(String keyName) { SC.showConsole(); } }); vL = new VLayout(5); vL.setTop(20); vL.setLeft(20); vL.setWidth100(); vL.setHeight100(); hL = new HLayout(5); IButton showWindow = new IButton("Show window"); showWindow.setWidth(200); showWindow.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { tW = new TestWindow(); tW.show(); } }); hL.addMembers(showWindow); vL.addMembers(hL); vL.draw(); } private class TestForm extends DynamicForm { public TestForm() { super(); setDataSource(DataSource.get("supplyItem")); setAutoFetchData(false); setWidth("95%"); setTitleWidth(180); setCellPadding(7); setCanEdit(true); setNumCols(6); HiddenItem itemID = new HiddenItem("itemID"); itemID.setFetchMissingValues(false); // 2 Items (2, 2) + 2x Title final TextItem itemNameTI = new TextItem("itemName"); itemNameTI.setRequired(true); itemNameTI.setColSpan(2); TextItem sku = new TextItem("SKU"); sku.setColSpan(2); FormItemIcon icon = new FormItemIcon(); icon.setSrc("[SKINIMG]Dialog/say.png"); icon.addFormItemClickHandler(new FormItemClickHandler() { @Override public void onFormItemClick(FormItemIconClickEvent event) { SC.say("<b>Lore ipsum...:</b>"); } }); sku.setIcons(icon); // 2 Items (2, 2) + 2x Title final TextItem itemNameTI2 = new TextItem("itemName"); itemNameTI2.setRequired(true); itemNameTI2.setColSpan(2); TextItem sku2 = new TextItem("SKU"); sku2.setColSpan(2); sku2.setTitle("Long Long SKU title"); FormItemIcon icon2 = new FormItemIcon(); icon2.setSrc("[SKINIMG]Dialog/say.png"); icon2.addFormItemClickHandler(new FormItemClickHandler() { @Override public void onFormItemClick(FormItemIconClickEvent event) { SC.say("<b>Lore ipsum2...:</b>"); } }); sku2.setIcons(icon2); // 3 Items (1,1,3) + 1x Title SpinnerItem unitCostSI = new SpinnerItem("unitCost"); unitCostSI.setTitle("3 fields here"); unitCostSI.setShowHintInField(true); unitCostSI.setHint("Fake title here"); SpinnerItem unitCostSI2 = new SpinnerItem("unitCost"); unitCostSI2.setShowTitle(false); unitCostSI2.setShowHintInField(true); unitCostSI2.setHint("Fake title here"); final TextItem descTI = new TextItem("description"); descTI.setColSpan(3); descTI.setShowTitle(false); descTI.setShowHintInField(true); descTI.setHint("Fake title2 here"); // 2 Items (2,3) + 1x Title SpinnerItem unitCostSI3 = new SpinnerItem("unitCost"); unitCostSI3.setColSpan(2); unitCostSI3.setTitle("2 fields here"); unitCostSI3.setShowHintInField(true); unitCostSI3.setHint("Fake title here"); final ComboBoxItem descCBI = new ComboBoxItem("description"); descCBI.setColSpan(3); descCBI.setShowTitle(false); descCBI.setShowHintInField(true); descCBI.setHint("Fake title2 here"); setFields(itemID, itemNameTI, sku, itemNameTI2, sku2, unitCostSI, unitCostSI2, descTI, unitCostSI3, descCBI); fetchData(new AdvancedCriteria(new Criterion("itemID", OperatorId.EQUALS, 1))); } } private class TestWindow extends Window { public TestWindow() { super(); setPadding(0); setMargin(0); setMembersMargin(0); setModalMaskOpacity(60); setWidth(750); setHeight(700); setPadding(105); setTitle("New Window"); setShowMinimizeButton(false); setIsModal(true); setShowModalMask(true); setShowHeaderIcon(true); centerInPage(); tF = new TestForm(); addItem(tF); } } private static class DefaultApperanceSetter { public static ReadOnlyDisplayAppearance defaultReadOnlyDisplayAppearance = ReadOnlyDisplayAppearance.DISABLED; private static Integer defaultFormItemHeight = 34; private static Integer defaultHoverDelay = 500; public static void setDefaultApperance() { setShortDatetimeDisplayFormatter(); setFormItemDefaultApperance(); setBooleanItemDefaultApperance(); setButtonDefaultApperance(); setCanvasDefaultApperance(); setComboBoxItemDefaultApperance(); setDateItemDefaultApperance(); setDatePickerDefaultAppearance(); setDynamicFormDefaultApperance(); setLinkItemDefaultApperance(); setListGridDefaultApperance(); setSectionHeaderDefaultApperance(); setSectionStackDefaultApperance(); setSelectItemDefaultApperance(); setSpinnerItemDefaultApperance(); setTabSetDefaultApperance(); setTextAreaItemDefaultApperance(); setTextItemDefaultApperance(); setWindowDefaultApperance(); } private static void setBooleanItemDefaultApperance() { BooleanItem bi = new BooleanItem() { { setWidth("*"); setHeight(defaultFormItemHeight); setLabelAsTitle(true); } }; BooleanItem.setDefaultProperties(bi); } private static void setButtonDefaultApperance() { Button b = new Button() { { setHoverDelay(defaultHoverDelay); } }; Button.setDefaultProperties(b); } private static void setCanvasDefaultApperance() { Canvas c = new Canvas() { { // setGroupBorderCSS("color: black"); } }; Canvas.setDefaultProperties(c); } private static void setComboBoxItemDefaultApperance() { ComboBoxItem cbi = new ComboBoxItem() { { setWidth("*"); setHeight(defaultFormItemHeight); setCanSelectText(true); } }; ComboBoxItem.setDefaultProperties(cbi); } private static void setDateItemDefaultApperance() { DateItem cbi = new DateItem() { { // setWidth("*"); setHeight(defaultFormItemHeight); setCanSelectText(true); } }; DateItem.setDefaultProperties(cbi); } private static void setDatePickerDefaultAppearance() { DateChooser dp = new DateChooser() { { setBackgroundColor("#C9C9C9"); setEdgeCenterBackgroundColor("#C9C9C9"); setGroupLabelBackgroundColor("#C9C9C9"); setEdgeBackgroundColor("#C9C9C9"); setStyleName("dateChooser"); setBorder("0px"); setGroupBorderCSS("0px"); } }; DateChooser.setDefaultProperties(dp); } private static void setDynamicFormDefaultApperance() { DynamicForm df = new DynamicForm() { { setReadOnlyDisplay(DefaultApperanceSetter.defaultReadOnlyDisplayAppearance); // setCanSelectText(false); setTitleSuffix(":"); setRequiredTitleSuffix(" (*):"); } }; DynamicForm.setDefaultProperties(df); } private static void setFormItemDefaultApperance() { FormItem fi = new FormItem() { { setHeight(defaultFormItemHeight); setHoverDelay(defaultHoverDelay); setCanSelectText(true); } }; FormItem.setDefaultProperties(fi); } private static void setLinkItemDefaultApperance() { LinkItem li = new LinkItem() { { setWidth("*"); setHeight(defaultFormItemHeight); setCanSelectText(true); } }; LinkItem.setDefaultProperties(li); } private static void setListGridDefaultApperance() { ListGrid lg = new ListGrid() { { setAutoFitFieldsFillViewport(true); setShowClippedValuesOnHover(true); setAutoFitWidthApproach(AutoFitWidthApproach.VALUE); setCanMultiGroup(false); setCanEdit(false); setShowFilterEditor(false); setCanFreezeFields(false); setCanReorderFields(false); setCellHeight(30); setHeaderHeight(35); setFixedRecordHeights(true); setGroupIcon("[SKINIMG]LT/group/group.png"); setGroupIconSize(30); setGroupLeadingIndent(0); setHoverDelay(defaultHoverDelay); } }; ListGrid.setDefaultProperties(lg); } private static void setSectionHeaderDefaultApperance() { SectionHeader sh = new SectionHeader() { { setIconHeight(39); setIconWidth(39); } }; SectionHeader.setDefaultProperties(sh); } private static void setSectionStackDefaultApperance() { SectionStack ss = new SectionStack() { { setHeaderHeight(39); setCanResizeSections(false); } }; SectionStack.setDefaultProperties(ss); } private static void setSelectItemDefaultApperance() { SelectItem si = new SelectItem() { { setWidth("*"); setHeight(defaultFormItemHeight); setCanSelectText(true); } }; SelectItem.setDefaultProperties(si); } private static void setShortDatetimeDisplayFormatter() { DateUtil.setShortDatetimeDisplayFormatter(new DateDisplayFormatter() { public String format(Date date) { if (date == null) return null; // final DateTimeFormat dateFormatter = // DateTimeFormat.getFormat("dd.MM.yyyy HH:mm"); final DateTimeFormat dateFormatter = DateTimeFormat.getFormat(PredefinedFormat.DATE_MEDIUM); String format = dateFormatter.format(date); return format; } }); } private static void setSpinnerItemDefaultApperance() { SpinnerItem cbi = new SpinnerItem() { { setWidth("*"); setHeight(defaultFormItemHeight); setCanSelectText(true); } }; SpinnerItem.setDefaultProperties(cbi); } private static void setTabSetDefaultApperance() { TabSet ts = new TabSet() { { setTabBarThickness(35); } }; TabSet.setDefaultProperties(ts); } private static void setTextItemDefaultApperance() { TextItem ti = new TextItem() { { setWidth("*"); setHeight(defaultFormItemHeight); setCanSelectText(true); } }; TextItem.setDefaultProperties(ti); } private static void setTextAreaItemDefaultApperance() { TextAreaItem tai = new TextAreaItem() { { setWidth("*"); setReadOnlyDisplay(ReadOnlyDisplayAppearance.READONLY); } }; TextAreaItem.setDefaultProperties(tai); } private static void setWindowDefaultApperance() { Window w = new Window() { { setBackgroundColor("#F5F5F5"); setBodyColor("#F5F5F5"); } }; Window.setDefaultProperties(w); } } }
Also, the SKU-title is not as wide as the 1st title column.
My aim is to have not-so-wide and wide FormItems in the same form. In order not to squander place and keep the DynamicForm compact, I try to place narrow items belongs to each other next to each other (e.g. given name and surname).
I'm using v10.0p_2015-08-24/PowerEdition Deployment.
Best regards
Blama
Comment