package com.smartgwt.sample.showcase.client.reifyIntegration; import com.smartgwt.client.callbacks.LoadProjectCallback; import com.smartgwt.client.data.DataSource; import com.smartgwt.client.rpc.CreateScreenSettings; import com.smartgwt.client.rpc.LoadProjectSettings; import com.smartgwt.client.rpc.Project; import com.smartgwt.client.rpc.RPCResponse; import com.smartgwt.client.tools.Reify; import com.smartgwt.client.types.ListGridFieldType; import com.smartgwt.client.types.SelectionStyle; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.DataContext; 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.VLayout; import com.smartgwt.client.widgets.tab.Tab; import com.smartgwt.client.widgets.tab.TabSet; import com.google.gwt.core.client.EntryPoint; public class ScreenInputsReifySample implements EntryPoint { private ListGrid supplyGrid; private TabSet tabSet; private Project project; @Override public void onModuleLoad() { DataSource.get("CM_Customer"); DataSource.get("CM_OrderLine"); DataSource.get("CM_Product"); final TabSet tabSet = new TabSet(); tabSet.setWidth(900); tabSet.setHeight(450); final ListGrid orderGrid = new ListGrid(); orderGrid.setAutoFetchData(true); orderGrid.setDisabled(true); orderGrid.setDataSource(DataSource.get("CM_Order")); orderGrid.setSelectionType(SelectionStyle.SINGLE); ListGridField customerNumber = new ListGridField("customerNumber"); ListGridField orderNumber = new ListGridField("orderNumber"); orderNumber.setType(ListGridFieldType.INTEGER); ListGridField orderDate = new ListGridField("orderDate"); orderDate.setType(ListGridFieldType.DATE); ListGridField status = new ListGridField("status"); orderGrid.setFields(customerNumber, orderNumber, orderDate, status); orderGrid.addRecordClickHandler(new RecordClickHandler() { @Override public void onRecordClick(RecordClickEvent event) { final ListGridRecord record = event.getRecord(); CreateScreenSettings settings = new CreateScreenSettings(); DataContext dataContext = new DataContext(); dataContext.setDataSourceRecord("CM_Order", record); settings.setDataContext(dataContext); settings.setSuppressAutoDraw(true); Canvas screen = project.createScreen((project.getScreenNames()[0]), settings); Tab tab = new Tab(); tab.setName(record.getAttribute("orderNumber")); tab.setTitle("Order: "+record.getAttribute("orderNumber")+" by "+record.getAttribute("customerName")); tab.setCanClose(true); tab.setPane(screen); tabSet.addTab(tab); tabSet.selectTab(tab); } }); Tab ordersTab = new Tab(); ordersTab.setCanClose(false); ordersTab.setTitle("Orders"); ordersTab.setPane(orderGrid); tabSet.addTab(ordersTab); VLayout mainLayout = new VLayout(); mainLayout.setWidth100(); mainLayout.setHeight100(); mainLayout.addMember(tabSet); LoadProjectSettings settings = new LoadProjectSettings(); settings.setUserName("reifySample"); settings.setPassword("tryReify"); settings.setServerURL("https://create.reify.com"); Reify.loadProject("Screen Inputs", new LoadProjectCallback() { @Override public void execute(Project loadedProject, Project[] projects, RPCResponse rpcResponse) { project = loadedProject; orderGrid.enable(); } }, settings); mainLayout.draw(); } }