/* * Copyright 2011-2013 PrimeFaces Extensions. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.primefaces.extensions.showcase.controller.exporter; import javax.faces.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; import org.primefaces.event.ToggleEvent; import org.primefaces.extensions.showcase.model.Vehicle; import org.primefaces.extensions.showcase.model.Customer; import java.io.Serializable; import java.lang.Integer; import java.lang.String; import java.security.PublicKey; import java.util.ArrayList; import java.util.List; import java.util.Random; /** * VehicleTableController * * @author Sudheer Jonna / last modified by $Author$ * @version $Revision: 1.0 $ * @since 0.7.0 */ @ManagedBean @ViewScoped public class VehicleTableController implements Serializable { private final static String[] manufacturers; private final static String[] colors; private List<Vehicle> vehicles; private List<Customer> customersDetails = new ArrayList<Customer>(); private List<Customer> customersDetailsList1 = new ArrayList<Customer>(); private List<Customer> customersDetailsList2 = new ArrayList<Customer>(); static { manufacturers = new String[7]; manufacturers[0] = "Mercedes"; manufacturers[1] = "BMW"; manufacturers[2] = "Volvo"; manufacturers[3] = "Audi"; manufacturers[4] = "Volkswagen"; manufacturers[5] = "Ferrari"; manufacturers[6] = "Ford"; colors = new String[7]; colors[0] = "Red"; colors[1] = "White"; colors[2] = "Yellow"; colors[3] = "Green"; colors[4] = "Blue"; colors[5] = "Orange"; colors[6] = "Black"; } public VehicleTableController() { vehicles = new ArrayList<Vehicle>(); customersDetailsList1.add(new Customer("Thomas Andraschko", "Germany", populateRandomContactNumbers())); customersDetailsList1.add(new Customer("Oleg Varaksin", "Russia", populateRandomContactNumbers())); customersDetailsList1.add(new Customer("Nilesh Mali", "India", populateRandomContactNumbers())); customersDetailsList1.add(new Customer("Mauricio Fenoglio", "Uruguay", populateRandomContactNumbers())); customersDetailsList1.add(new Customer("Oval Slany", "Slovakia", populateRandomContactNumbers())); customersDetailsList1.add(new Customer("Sudheer Jonna", "India", populateRandomContactNumbers())); customersDetailsList2.add(new Customer("Narayana VenkataS", "India", populateRandomContactNumbers())); customersDetailsList2.add(new Customer("Anu Pallavi", "India", populateRandomContactNumbers())); customersDetailsList2.add(new Customer("Uma Vijayakumar", "India", populateRandomContactNumbers())); customersDetailsList2.add(new Customer("Surendra", "India", populateRandomContactNumbers())); customersDetailsList2.add(new Customer("Vineet Jain", "Canada", populateRandomContactNumbers())); customersDetailsList2.add(new Customer("Karthikeyan", "Canada", populateRandomContactNumbers())); customersDetailsList2.add(new Customer("Sudheer", "India", populateRandomContactNumbers())); populateRandomVehicles(vehicles, 6); } private void populateRandomVehicles(List<Vehicle> vehicles, int size) { for (int i = 0; i < size; i++) { customersDetails = new ArrayList<Customer>(); if ((i + 1) % 2 == 0) { customersDetails = customersDetailsList2; } else { customersDetails = customersDetailsList1; } vehicles.add(new Vehicle(i + 1, getRandomManufacturer(), getRandomColor(), getRandomSpeed(), getRandomPrice(), getRandomYear(), customersDetails)); } } private String populateRandomContactNumbers() { Random generator = new Random(); String strippedNum; int num1 = 0; int num2 = 0; int num3 = 0; num1 = generator.nextInt(600) + 100; num2 = generator.nextInt(641) + 100; num3 = generator.nextInt(8999) + 1000; String string1 = Integer.toString(num1); strippedNum = Integer.toOctalString(num1); String contactNumber = strippedNum + "-" + num2 + "-" + num3; return contactNumber; } public List<Vehicle> getVehicles() { return vehicles; } private String getRandomManufacturer() { return manufacturers[(int) (Math.random() * 6)]; } public List<Customer> getCustomersDetails() { return customersDetails; } private int getRandomSpeed() { return (int) (Math.random() * 10 + 150); } private int getRandomYear() { return (int) (Math.random() * 50 + 1960); } private String getRandomColor() { return colors[(int) (Math.random() * 6)]; } private int getRandomPrice() { return (int) (Math.random() * 10 + 10000); } public void onRowToggle(ToggleEvent event) { FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_INFO, "Selected Vehicle", "Manufacturer:" + ((Vehicle) event.getData()).getManufacturer()); FacesContext.getCurrentInstance().addMessage(null, msg); } }