The FormItem is not visible in the SmartClient Version: v10.1p_2016-06-16/PowerEdition Deployment (built 2016-06-16) , but works just fine in the version 5.0.
The private
is not visible, but if I change it to
it works just fine and the item is visible.
to call the window just call it this way:
The problem is the SmartGWT/5.1p/PowerEdition , but works just fine in the 5.0p.
Code:
import com.smartgwt.client.data.Record; import com.smartgwt.client.data.RecordList; import com.smartgwt.client.widgets.IButton; import com.smartgwt.client.widgets.Window; import com.smartgwt.client.widgets.form.DynamicForm; import com.smartgwt.client.widgets.form.fields.HiddenItem; import com.smartgwt.client.widgets.form.fields.SelectItem; import java.util.LinkedHashMap; import com.smartgwt.client.data.DSCallback; import com.smartgwt.client.data.DSRequest; import com.smartgwt.client.data.DSResponse; import com.smartgwt.client.data.DataSource; import com.smartgwt.client.data.Record; import com.smartgwt.client.data.RecordList; import com.smartgwt.client.rpc.RPCResponse; import com.smartgwt.client.types.Alignment; import com.smartgwt.client.widgets.Canvas; 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.FormItem; import com.smartgwt.client.widgets.form.fields.HiddenItem; import com.smartgwt.client.widgets.form.fields.SelectItem; import com.smartgwt.client.widgets.layout.HLayout; public class NotificationWindow extends Window{ final private static int WINDOW_WIDTH = 450; final private static int WINDOW_HEIGHT = 200; final private static int NUM_COLUMNS = 2; final private static int COLUMN_WIDTH = 200; final private static int PADDING = 10; final private IButton cancelButton = new IButton( "cancel" ); final private DynamicForm form = new DynamicForm(); private SelectItem typeField; // global to allow hide/show/disable throughout code private final HiddenItem hiddenTypeItem = new HiddenItem( "alert_policy_type_id" ); private RecordList recordList; /** * If non-null, contains an existing notification policy record that is to be used as a base for cloning into the * new record being created. */ private Record cloneRecord = null; public NotificationWindow() { super(); } /** * Instantiates a new notification window. This constructor is used for cloning and existing record. * * [USER="45788"]param[/USER] cloneRecord the clone record */ public NotificationWindow( final Record cloneRecord ) { super(); this.cloneRecord = cloneRecord; } public void doCreate( final RecordList recordList ) { this.initLayout( recordList ); this.show(); // [**ERROR**] } private void initLayout( final RecordList recordList ) { this.recordList = recordList; this.setIsModal( true ); this.setShowModalMask( true ); this.setWidth( NotificationWindow.WINDOW_WIDTH ); this.setHeight( NotificationWindow.WINDOW_HEIGHT ); this.setShowMinimizeButton( false ); this.setShowMaximizeButton( false ); this.setShowCloseButton( false ); this.setDismissOnEscape( false ); this.addItem( this.getForm() ); this.addItem( this.getButtons() ); this.centerInPage(); this.form.clearValues(); this.setTitle( "TITLE" ); this.setKeepInParentRect( true ); this.form.editNewRecord(); if ( this.cloneRecord != null ) { this.typeField.setValue( this.cloneRecord.getAttribute( "alert_policy_type_id" ) ); this.typeField.setDisabled( true ); } else { this.typeField.setDisabled( false ); } } private Canvas getButtons() { this.cancelButton.addClickHandler( new ClickHandler() { @Override public void onClick( final ClickEvent event ) { NotificationWindow.this.returnAndClose( null ); } } ); final HLayout l = new HLayout(); l.setLayoutAlign( Alignment.CENTER ); l.setLayoutMargin( NotificationWindow.PADDING ); l.setMembersMargin( NotificationWindow.PADDING ); l.setAlign( Alignment.CENTER ); l.setWidth100(); l.setHeight( "20%" ); final Canvas spacer = new Canvas(); spacer.setWidth100(); l.addMember( this.cancelButton ); return l; } private void returnAndClose( final Record record ) { NotificationWindow.this.hide(); NotificationWindow.this.markForDestroy(); } private final FormItem name = new FormItem( "alert_policy_name" ); private DynamicForm getForm() { //this.form.setDataSource( this.dsPolicySummary ); this.form.setCellPadding( NotificationWindow.PADDING ); this.form.setWrapItemTitles( false ); this.form.setWidth( "*" ); this.form.setNumCols( NotificationWindow.NUM_COLUMNS ); this.form.setHeight( "80%" ); final FormItem id = new FormItem( "alert_policy_id" ); this.name.setWidth( NotificationWindow.COLUMN_WIDTH ); this.name.setRequired( true ); this.name.setTitle( "policy_name" ); //this.name.setValidators( new UniqueValidator( new ValidationInfo( this.recordList, null, null ) ), new RequiredValidator() ); this.typeField = new SelectItem( "temp_type_id" ); this.typeField.setWidth( NotificationWindow.COLUMN_WIDTH ); this.typeField.setRequired( true ); this.typeField.setTitle( "alert_viewPolicySummary_title_alert_type_description" ); LinkedHashMap< Integer, String > map = new LinkedHashMap< Integer, String >(); map.put( 1, "describePolicyType1" ); map.put( 2, "describePolicyType2" ); this.typeField.setValueMap( map ); this.form.setFields( id, this.name, this.typeField, this.hiddenTypeItem ); id.setVisible( false ); return this.form; } }
Code:
final FormItem name = new FormItem( "alert_policy_name" );
Code:
final FormItem name = new TextItem( "alert_policy_name" );
to call the window just call it this way:
Code:
final DynamicForm form = new DynamicForm(); final IButton button = new IButton("Hello"); button.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { final NotificationWindow notifWindow = new NotificationWindow(); notifWindow.doCreate(null); } });
Comment