Java Code

package com.sibvisions.apps.visionxdemocoders.screens;

import com.sibvisions.apps.components.MorphPanel;
import com.sibvisions.apps.components.MorphPanel.DisplayMode;
import com.sibvisions.apps.components.NavigationTable;
import com.sibvisions.apps.projx.ProjXUtil;
import com.sibvisions.apps.projx.screens.DataSourceWorkScreen;
import com.sibvisions.rad.model.mem.MemDataBook;
import com.sibvisions.rad.model.remote.RemoteDataBook;
import java.io.File;
import java.math.BigDecimal;
import java.nio.file.Files;
import java.util.Map;
import javax.rad.application.IWorkScreenApplication;
import javax.rad.genui.UIColor;
import javax.rad.genui.UIDimension;
import javax.rad.genui.UIImage;
import javax.rad.genui.component.UILabel;
import javax.rad.genui.component.UIMap;
import javax.rad.genui.component.UIMapLocation;
import javax.rad.genui.container.UIGroupPanel;
import javax.rad.genui.container.UIPanel;
import javax.rad.genui.control.UIEditor;
import javax.rad.genui.layout.UIBorderLayout;
import javax.rad.genui.layout.UIFormLayout;
import javax.rad.model.ColumnDefinition;
import javax.rad.model.datatype.BigDecimalDataType;
import javax.rad.model.datatype.BinaryDataType;
import javax.rad.model.datatype.StringDataType;
import javax.rad.model.reference.ReferenceDefinition;
import javax.rad.remote.AbstractConnection;
import javax.rad.ui.IColor;
import javax.rad.ui.component.IMapLocation;

/**
 * The New screen manages ...
 */
public class CustomerOrdersCodersWorkScreen extends DataSourceWorkScreen
{

	/** editCustomerorderscodersOrderNumber. */
	private UIEditor		editCustomerorderscodersOrderNumber		= new UIEditor();

	/** editCustomerorderscodersCompany. */
	private UIEditor		editCustomerorderscodersCompany			= new UIEditor();

	/** editCustomerorderscodersOrdeOrderTotal. */
	private UIEditor		editCustomerorderscodersOrdeOrderTotal	= new UIEditor();

	/** editCustomerorderscodersLastName. */
	private UIEditor		editCustomerorderscodersLastName		= new UIEditor();

	/** editCustomerorderscodersFirstName. */
	private UIEditor		editCustomerorderscodersFirstName		= new UIEditor();

	/** labelOrderNumber. */
	private UILabel			labelOrderNumber						= new UILabel();

	/** labelCompany. */
	private UILabel			labelCompany							= new UILabel();

	/** labelOrderTotal. */
	private UILabel			labelOrderTotal							= new UILabel();

	/** labelLastName. */
	private UILabel			labelLastName							= new UILabel();

	/** labelFirstName. */
	private UILabel			labelFirstName							= new UILabel();

	/** formLayout1. */
	private UIFormLayout	formLayout1								= new UIFormLayout();

	/** formLayout2. */
	private UIFormLayout	formLayout2								= new UIFormLayout();

	/** groupPanelCustomerorderscoders. */
	private UIGroupPanel	groupPanelCustomerorderscoders			= new UIGroupPanel();

	/** tableCustomerorderscoders. */
	private NavigationTable	tableCustomerorderscoders				= new NavigationTable();

	/** tableOrderdetails. */
	private NavigationTable	tableOrderdetails						= new NavigationTable();

	/** panel1. */
	private UIPanel			panel1									= new UIPanel();

	/** panel2. */
	private UIPanel			panel2									= new UIPanel();

	/** panelMap. */
	private UIPanel			panelMap								= new UIPanel();

	/** morphPanelMain. */
	private MorphPanel		morphPanelMain							= new MorphPanel();

	/** borderLayout1. */
	private UIBorderLayout	borderLayout1							= new UIBorderLayout();

	/** borderLayout2. */
	private UIBorderLayout	borderLayout2							= new UIBorderLayout();

	/** borderLayout3. */
	private UIBorderLayout	borderLayout3							= new UIBorderLayout();

	/** Remote databook customerorderscoders. */
	private RemoteDataBook	rdbCustomerorderscoders					= new RemoteDataBook();

	/** Remote databook orderDetails. */
	private RemoteDataBook	rdbOrderdetails							= new RemoteDataBook();

	/**
	 * Constructs a new instance of CustomerOrdersCodersWorkScreen. * * @param pApplication the application * @param pConnection the connection * @param pParameter additional screen parameters * @throws Throwable if an error occurs */ public CustomerOrdersCodersWorkScreen(IWorkScreenApplication pApplication, AbstractConnection pConnection, Map<String, Object> pParameter) throws Throwable { super(pApplication, pConnection, pParameter); initializeModel(); createMapPanel(); initializeUI(); } /** * Initializes the model. * * @throws Throwable if the initialization throws an error */ private void initializeModel() throws Throwable { rdbCustomerorderscoders.setName("customerorderscoders"); rdbCustomerorderscoders.setDataSource(getDataSource()); rdbCustomerorderscoders.open(); rdbOrderdetails.setName("orderDetails"); rdbOrderdetails.setMasterReference(new ReferenceDefinition(new String[] { "CUST_ID", "CUST_COMPANY" }, rdbCustomerorderscoders, new String[] { "ID", "COMPANY" })); rdbOrderdetails.setDataSource(getDataSource()); rdbOrderdetails.open(); rdbOrderdetails.getRowDefinition().getColumnDefinition("PRICE_EACH").getDataType().setCellEditor(ProjXUtil.CURRENCY); rdbOrderdetails.getRowDefinition().getColumnDefinition("PRICE_TOTAL").getDataType().setCellEditor(ProjXUtil.CURRENCY); } /** * Initializes the UI. * * @throws Throwable if the initialization throws an error */ private void initializeUI() throws Throwable { tableCustomerorderscoders.setMaximumSize(new UIDimension(450, 350)); tableCustomerorderscoders.setDataBook(rdbCustomerorderscoders); tableCustomerorderscoders.setAutoResize(false); tableOrderdetails.setMaximumSize(new UIDimension(450, 350)); tableOrderdetails.setDataBook(rdbOrderdetails); tableOrderdetails.setAutoResize(false); labelOrderNumber.setText("Order Number"); labelCompany.setText("Company"); labelOrderTotal.setText("Order Total"); labelLastName.setText("Last Name"); labelFirstName.setText("First Name"); editCustomerorderscodersOrderNumber.setDataRow(rdbCustomerorderscoders); editCustomerorderscodersOrderNumber.setColumnName("ORDER_NUMBER"); editCustomerorderscodersCompany.setDataRow(rdbCustomerorderscoders); editCustomerorderscodersCompany.setColumnName("COMPANY"); editCustomerorderscodersOrdeOrderTotal.setDataRow(rdbCustomerorderscoders); editCustomerorderscodersOrdeOrderTotal.setColumnName("ORDE_ORDER_TOTAL"); editCustomerorderscodersLastName.setDataRow(rdbCustomerorderscoders); editCustomerorderscodersLastName.setColumnName("LAST_NAME"); editCustomerorderscodersFirstName.setDataRow(rdbCustomerorderscoders); editCustomerorderscodersFirstName.setColumnName("FIRST_NAME"); formLayout1.setAnchorConfiguration("t3=27,b3=125,t4=36"); panel1.setLayout(borderLayout2); panel1.add(tableCustomerorderscoders, UIBorderLayout.CENTER); groupPanelCustomerorderscoders.setText("Customer Orders"); groupPanelCustomerorderscoders.setLayout(formLayout1); groupPanelCustomerorderscoders.setMinimumSize(new UIDimension(20, 20)); groupPanelCustomerorderscoders.add(labelOrderNumber, formLayout1.getConstraints(0, 0)); groupPanelCustomerorderscoders.add(editCustomerorderscodersOrderNumber, formLayout1.getConstraints(1, 0)); groupPanelCustomerorderscoders.add(labelCompany, formLayout1.getConstraints(2, 0)); groupPanelCustomerorderscoders.add(editCustomerorderscodersCompany, formLayout1.getConstraints(3, 0)); groupPanelCustomerorderscoders.add(labelOrderTotal, formLayout1.getConstraints(0, 1)); groupPanelCustomerorderscoders.add(editCustomerorderscodersOrdeOrderTotal, formLayout1.getConstraints(1, 1)); groupPanelCustomerorderscoders.add(labelLastName, formLayout1.getConstraints(2, 1)); groupPanelCustomerorderscoders.add(editCustomerorderscodersLastName, formLayout1.getConstraints(3, 1)); groupPanelCustomerorderscoders.add(labelFirstName, formLayout1.getConstraints(0, 2)); groupPanelCustomerorderscoders.add(editCustomerorderscodersFirstName, formLayout1.getConstraints(1, 2)); groupPanelCustomerorderscoders.add(tableOrderdetails, formLayout1.getConstraints(0, 3, -1, 3)); groupPanelCustomerorderscoders.add(panelMap, formLayout1.getConstraints(0, 4, -1, -1)); panel2.setLayout(borderLayout3); panel2.add(groupPanelCustomerorderscoders, UIBorderLayout.CENTER); morphPanelMain.setTabHeaderVisible(false); morphPanelMain.setDividerPosition(-1); morphPanelMain.setDisplayMode(DisplayMode.Split); morphPanelMain.setButtonPanelVisible(true); morphPanelMain.add(panel1, "Overview"); morphPanelMain.add(panel2, "Details"); setLayout(borderLayout1); add(morphPanelMain, UIBorderLayout.CENTER); } private void createMapPanel() throws Exception { panelMap = new UIPanel(); UIBorderLayout layout = new UIBorderLayout(); panelMap.setLayout(layout); MemDataBook groupDataBook = new MemDataBook(); MemDataBook pointsDataBook = new MemDataBook(); groupDataBook.setName("main"); groupDataBook.getRowDefinition().addColumnDefinition(new ColumnDefinition("GROUP", new StringDataType())); groupDataBook.getRowDefinition().addColumnDefinition(new ColumnDefinition("LATITUDE", new BigDecimalDataType(20, 17))); groupDataBook.getRowDefinition().addColumnDefinition(new ColumnDefinition("LONGITUDE", new BigDecimalDataType(20, 17))); groupDataBook.open(); pointsDataBook.setName("points"); pointsDataBook.getRowDefinition().addColumnDefinition(new ColumnDefinition("GROUP", new StringDataType())); pointsDataBook.getRowDefinition().addColumnDefinition(new ColumnDefinition("LATITUDE", new BigDecimalDataType(20, 17))); pointsDataBook.getRowDefinition().addColumnDefinition(new ColumnDefinition("LONGITUDE", new BigDecimalDataType(20, 17))); pointsDataBook.getRowDefinition().addColumnDefinition(new ColumnDefinition("MARKER_IMAGE", new BinaryDataType())); pointsDataBook.open(); groupDataBook.insert(false); groupDataBook.setValue("GROUP", "TEST"); groupDataBook.setValues(new String[] { "LATITUDE", "LONGITUDE" }, new BigDecimal[] { BigDecimal.valueOf(48.0), BigDecimal.valueOf(16.0) }); groupDataBook.insert(false); groupDataBook.setValue("GROUP", "TEST"); groupDataBook.setValues(new String[] { "LATITUDE", "LONGITUDE" }, new BigDecimal[] { BigDecimal.valueOf(48.5), BigDecimal.valueOf(16.5) }); groupDataBook.insert(false); groupDataBook.setValue("GROUP", "TEST"); groupDataBook.setValues(new String[] { "LATITUDE", "LONGITUDE" }, new BigDecimal[] { BigDecimal.valueOf(48.5), BigDecimal.valueOf(16.0) }); groupDataBook.insert(false); groupDataBook.setValue("GROUP", "TEST"); groupDataBook.setValues(new String[] { "LATITUDE", "LONGITUDE" }, new BigDecimal[] { BigDecimal.valueOf(48.0), BigDecimal.valueOf(16.5) }); pointsDataBook.insert(false); pointsDataBook.setValue("GROUP", "TEST2"); pointsDataBook.setValues(new String[] { "LATITUDE", "LONGITUDE" }, new BigDecimal[] { BigDecimal.valueOf(47.0), BigDecimal.valueOf(16.0) }); File file = new File("C:/Users/CT/Documents/CT Admin/CPT Import/SIB Visions/Marketing/Assets/VisionX Logo und Banner/index.png"); byte[] bytes = Files.readAllBytes(file.toPath()); pointsDataBook.setValue("MARKER_IMAGE", bytes); pointsDataBook.insert(false); pointsDataBook.setValue("GROUP", "TEST3"); pointsDataBook.setValues(new String[] { "LATITUDE", "LONGITUDE" }, new BigDecimal[] { BigDecimal.valueOf(42.5), BigDecimal.valueOf(17.0) }); pointsDataBook.insert(false); pointsDataBook.setValue("GROUP", "TEST4"); pointsDataBook.setValues(new String[] { "LATITUDE", "LONGITUDE" }, new BigDecimal[] { BigDecimal.valueOf(48.175), BigDecimal.valueOf(16.25) }); groupDataBook.saveAllRows(); pointsDataBook.saveAllRows(); getFactory().setProperty("vaadin.component.map.google", Boolean.FALSE); // Map UIMap ostMap = new UIMap(); panelMap.add(ostMap, UIBorderLayout.CENTER); ostMap.setLineColor(new UIColor(0xf00000ff)); ostMap.setFillColor(new UIColor(0xffffffff)); UIImage marker = new UIImage("https://developers.google.com/maps/documentation/javascript/examples/full/images/beachflag.png"); ostMap.setMarker(marker); ostMap.setPointsDataBook(pointsDataBook); ostMap.setPointSelectionEnabled(true); ostMap.setPointSelectionLockedOnCenter(false); ostMap.setCenter(new UIMapLocation(48.0, 16.0)); /// Ende ostMap.setPreferredSize(new UIDimension(500, 500)); } } // CustomerOrdersCodersWorkScreen