Hi Isomorphic,
please see this testcase (v11.1p_2017-08-15) with some LinkItem and DynamicForms design issues.
Problems:

Best regards
Blama
please see this testcase (v11.1p_2017-08-15) with some LinkItem and DynamicForms design issues.
Problems:
- I'd expect the LinkItem to look like the TextItem when editing (Textentry box is not high enough) in DynamicForms 1+3.
- I'd expect all titles to be on one level in DynamicForms 1+2 (the TitleOrientation.TOP ones)
- Minor: Why is the name.setCanEdit(true) needed when there is already df.setCanEdit(true) in DynamicForms 1+3.
Code:
package com.smartgwt.sample.client;
import com.google.gwt.core.client.EntryPoint;
import com.smartgwt.client.Version;
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.OperatorId;
import com.smartgwt.client.types.TitleOrientation;
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.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.LinkItem;
import com.smartgwt.client.widgets.form.fields.StaticTextItem;
import com.smartgwt.client.widgets.form.fields.TextItem;
import com.smartgwt.client.widgets.layout.VLayout;
public class BuiltInDS implements EntryPoint {
private VLayout mainLayout;
private IButton recreateBtn;
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();
}
});
LinkItem li = new LinkItem() {
{
setWidth("*");
setHeight(60);
setCanSelectText(true);
}
};
LinkItem.setDefaultProperties(li);
TextItem ti = new TextItem() {
{
setWidth("*");
setHeight(60);
setCanSelectText(true);
}
};
TextItem.setDefaultProperties(ti);
LinkItem.setDefaultProperties(li);
StaticTextItem sti = new StaticTextItem() {
{
setWidth("*");
setHeight(60);
setCanSelectText(true);
}
};
StaticTextItem.setDefaultProperties(sti);
mainLayout = new VLayout(20);
mainLayout.setWidth100();
mainLayout.setHeight100();
recreateBtn = new IButton("Recreate");
recreateBtn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
recreate();
}
});
mainLayout.addMember(recreateBtn);
recreate();
mainLayout.draw();
}
private void recreate() {
Window w = new Window();
w.setWidth("95%");
w.setCanDragResize(true);
w.setHeight("95%");
w.setMembersMargin(0);
w.setModalMaskOpacity(70);
w.setTitle(" (" + Version.getVersion() + "/" + Version.getSCVersionNumber() + ")");
w.setTitle("LinkItems do not respect setHeight if used in a Dynamic Form with TitleOrientation.TOP" + w.getTitle());
w.setShowMinimizeButton(false);
w.setIsModal(true);
w.setShowModalMask(true);
w.centerInPage();
{
final DynamicForm df = new DynamicForm();
df.setIsGroup(true);
df.setGroupTitle("DF1");
df.setTitleOrientation(TitleOrientation.TOP);
df.setNumCols(3);
df.setDataSource(DataSource.get("employees"));
df.setCanEdit(true);
StaticTextItem sti = new StaticTextItem("sti", "Dummyitem");
sti.setDefaultValue("LinkItems do not respect setHeight if used in a Dynamic Form with TitleOrientation.TOP");
TextItem employeeId = new TextItem("EmployeeId");
LinkItem name = new LinkItem("Name");
// Why this is needed?
name.setCanEdit(true);
df.setFields(employeeId, name, sti);
df.fetchData(new AdvancedCriteria(new Criterion(employeeId.getName(), OperatorId.EQUALS, 4)));
w.addItem(df);
}
{
final DynamicForm df = new DynamicForm();
df.setIsGroup(true);
df.setGroupTitle("DF2");
df.setTitleOrientation(TitleOrientation.TOP);
df.setNumCols(2);
df.setDataSource(DataSource.get("employees"));
df.setCanEdit(false);
TextItem employeeId = new TextItem("EmployeeId");
LinkItem name = new LinkItem("Name");
df.setFields(employeeId, name);
df.fetchData(new AdvancedCriteria(new Criterion(employeeId.getName(), OperatorId.EQUALS, 4)));
w.addItem(df);
}
{
final DynamicForm df = new DynamicForm();
df.setIsGroup(true);
df.setGroupTitle("DF3");
df.setDataSource(DataSource.get("employees"));
df.setCanEdit(true);
TextItem employeeId = new TextItem("EmployeeId");
LinkItem name = new LinkItem("Name");
// Why this is needed?
name.setCanEdit(true);
df.setFields(employeeId, name);
df.fetchData(new AdvancedCriteria(new Criterion(employeeId.getName(), OperatorId.EQUALS, 4)));
w.addItem(df);
}
{
final DynamicForm df = new DynamicForm();
df.setIsGroup(true);
df.setGroupTitle("DF4");
df.setDataSource(DataSource.get("employees"));
df.setCanEdit(false);
TextItem employeeId = new TextItem("EmployeeId");
LinkItem name = new LinkItem("Name");
df.setFields(employeeId, name);
df.fetchData(new AdvancedCriteria(new Criterion(employeeId.getName(), OperatorId.EQUALS, 4)));
w.addItem(df);
}
w.show();
}
}
Best regards
Blama
Comment