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