package demo49;
import java.util.*;
import org.openswing.swing.internationalization.java.EnglishOnlyResourceFactory;
import org.openswing.swing.domains.java.*;
import java.sql.*;
import org.openswing.swing.util.client.*;
import org.openswing.swing.internationalization.java.*;
import org.openswing.swing.table.profiles.client.FileGridProfileManager;
import java.text.SimpleDateFormat;
import java.math.BigDecimal;
import java.io.*;
/**
* <p>Title: OpenSwing Demo</p>
* <p>Description: Used to start application from main method:
* it creates an editable grid frame.</p>
* <p>Copyright: Copyright (C) 2006 Mauro Carniel</p>
* <p> </p>
* @author Mauro Carniel
* @version 1.0
*/
public class ClientApplication {
public ClientApplication() {
Hashtable domains = new Hashtable();
Properties props = new Properties();
props.setProperty("category","Category");
props.setProperty("subCategory","Sub Category");
props.setProperty("item","Item");
props.setProperty("sellQty","Qty");
props.setProperty("sellAmount","Sell");
props.setProperty("orderDate","Order Date");
props.setProperty("year","Year");
props.setProperty("quarter","Quarter");
props.setProperty("sells","Sells");
props.setProperty("agent","Agent");
props.setProperty("country","Country");
props.setProperty("region","Region");
ClientSettings clientSettings = new ClientSettings(
new EnglishOnlyResourceFactory("�",props,true),
domains
);
ClientSettings.FILTER_PANEL_ON_GRID = true;
Domain orderStateDomain = new Domain("ORDERSTATE");
orderStateDomain.addDomainPair(new Integer(0),"opened");
orderStateDomain.addDomainPair(new Integer(1),"suspended");
orderStateDomain.addDomainPair(new Integer(2),"delivered");
orderStateDomain.addDomainPair(new Integer(3),"closed");
domains.put(
orderStateDomain.getDomainId(),
orderStateDomain
);
ClientSettings.ALLOW_OR_OPERATOR = false;
ClientSettings.INCLUDE_IN_OPERATOR = false;
ClientSettings.GRID_PROFILE_MANAGER = new FileGridProfileManager();
//createData();
long t = System.currentTimeMillis();
// ArrayList vos = loadData();
// System.out.println("Loading data in "+(System.currentTimeMillis()-t)+"ms");
// ArrayList vos = null;
// new GridFrame(vos);
new GridFrame();
}
public static void main(String[] argv) {
new ClientApplication();
}
/**
* Create data.
*/
private void createData() {
try {
String[] categories = new String[]{"Hardware","Software"};
String[][] subCategories = new String[][]{{"PC","Monitor","Printer"},{"O.S.","IDEs","Office Appl.","Database","Games","Other SW"}};
String[] agents = new String[]{"Agent 1","Agent 2","Agent 3"};
String[] countries = new String[]{"Italy","France","Germany","Other"};
String[][] zones = new String[][]{{"North Italy","Center Italy","South Italy"},{"Paris","Outside Paris"},{"East","West"},{"Iberica Peninsula","U.K. & Ireland","Be.Ne.Lux.","East Europe"}};
HashMap items = new HashMap();
items.put("PC",new String[]{"Dell","HP"});
items.put("Monitor",new String[]{"LG","Sony","Philips"});
items.put("Printer",new String[]{"HP","Epson"});
items.put("O.S.",new String[]{"Windows","Linux","Mac"});
items.put("IDEs",new String[]{"JBuilder","IBM RAD","MS Visual Studio .NET"});
items.put("Office Appl.",new String[]{"MS Office 2007","Open Office"});
items.put("Database",new String[]{"Oracle","MS SQLServer","Sybase","IBM DB2"});
items.put("Games",new String[]{"Need4Speed","Fifa"});
items.put("Other SW",new String[]{"Norton AV","Photoshop"});
FileOutputStream out = new FileOutputStream("orders.txt");
String line = null;
int i=0;
Calendar cal = Calendar.getInstance();
cal.set(cal.YEAR,2007);
cal.set(cal.MONTH,0);
cal.set(cal.DAY_OF_MONTH,1);
cal.set(cal.HOUR_OF_DAY,0);
cal.set(cal.MINUTE,0);
cal.set(cal.SECOND,0);
cal.set(cal.MILLISECOND,0);
long t = cal.getTimeInMillis();
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String date = null;
int maxRows = 2000000;
String[] ii = null;
String[] sub = null;
String[] z = null;
do {
date = sdf.format(new java.util.Date(t));
for(int k1=0;k1<categories.length;k1++) {
sub = subCategories[k1];
for(int k2=0;k2<sub.length;k2++) {
if (i>=maxRows)
break;
for(int k3=0;k3<countries.length;k3++) {
z = zones[k3];
for(int k4=0;k4<z.length;k4++)
for(int k5=0;k5<agents.length;k5++) {
if (i>=maxRows)
break;
ii = (String[])items.get(sub[k2]);
for(int k6=0;k6<ii.length;k6++) {
if (i>=maxRows)
break;
line =
date+";"+
categories[k1]+";"+
sub[k2]+";"+
countries[k3]+";"+
z[k4]+";"+
agents[k5]+";"+
ii[k6]+";"+
new BigDecimal(Math.random()*10).setScale(0,BigDecimal.ROUND_HALF_UP)+";"+
new BigDecimal(Math.random()*1000).setScale(2,BigDecimal.ROUND_HALF_UP)+";"+
"\n";
out.write(line.getBytes());
out.flush();
i++;
}
}
}
}
}
t += 86400000;
}
while(i<maxRows);
out.close();
}
catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* Load data.
*/
private ArrayList loadData() {
try {
ArrayList vos = new ArrayList();
BufferedReader br = new BufferedReader(new InputStreamReader(new FileInputStream("orders.txt")));
String line = null;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
OrdersVO vo = null;
String[] t = null;
while((line=br.readLine())!=null) {
t = line.split(";");
vo = new OrdersVO();
vos.add(vo);
vo.setOrderDate(sdf.parse(t[0]));
vo.setCategory(t[1]);
vo.setSubCategory(t[2]);
vo.setCountry(t[3]);
vo.setZone(t[4]);
vo.setAgent(t[5]);
vo.setItem(t[6]);
vo.setSellQty(new BigDecimal(t[7]));
vo.setSellAmount(new BigDecimal(t[8]));
}
br.close();
return vos;
}
catch (Exception ex) {
ex.printStackTrace();
return new ArrayList();
}
}
}