package
com.account.real;
import
java.io.InputStream;
import
java.net.URL;
import
java.net.URLEncoder;
import
java.text.SimpleDateFormat;
import
java.util.ArrayList;
import
java.util.Date;
import
java.util.List;
import
org.achartengine.ChartFactory;
import
org.achartengine.GraphicalView;
import
org.achartengine.chart.BarChart.Type;
import
org.achartengine.model.CategorySeries;
import
org.achartengine.model.XYMultipleSeriesDataset;
import
org.achartengine.renderer.XYMultipleSeriesRenderer;
import
org.xmlpull.v1.XmlPullParser;
import
org.xmlpull.v1.XmlPullParserFactory;
import
android.app.Activity;
import
android.content.Context;
import
android.content.Intent;
import
android.graphics.Color;
import
android.graphics.Paint.Align;
import
android.os.Bundle;
import
android.os.Handler;
import
android.view.KeyEvent;
import
android.widget.LinearLayout;
public
class
ChartActivity
extends
Activity {
private
final
String SERVER_ADDRESS =
"http://--"
;
String Email = com.account.real.LoginActivity.userEmail;
Date date;
long
now;
String a;
SimpleDateFormat format;
LinearLayout ll ;
List<
double
[]> values;
List<String> title =
new
ArrayList<String>();
ArrayList<String> checkio ;
XYMultipleSeriesRenderer renderer;
XYMultipleSeriesDataset dataset ;
Context context = ChartActivity.
this
;
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_chart);
ll = (LinearLayout)findViewById(R.id.llBody);
now = System.currentTimeMillis();
date=
new
Date(now);
format =
new
SimpleDateFormat(
"yyyy/MM/dd"
);
a = format.format(date);
final
Handler handler =
new
Handler();
handler.post(
new
Runnable() {
public
void
run() {
try
{
URL url =
new
URL(SERVER_ADDRESS +
"/chart2.php?"
+
"Email="
+ URLEncoder.encode(Email,
"UTF-8"
)
+
"&Day="
+ URLEncoder.encode(a,
"UTF-8"
));
System.out.println(url);
url.openStream();
checkio = getXmlDataList(
"chart2result.xml"
,
"checkio"
);
ArrayList<String> money = getXmlDataList(
"chart2result.xml"
,
"money"
);
renderer =
new
XYMultipleSeriesRenderer();
for
(
int
k =
0
; k < checkio.size(); k++) {
if
(money.get(k).contains(
"-"
))
{
String m = money.get(k).substring(
1
);
System.out.println(Double.parseDouble(m));
values.add(
new
double
[]{ Double.valueOf(m) });
}
else
{
String m = money.get(k);
System.out.println(Double.parseDouble(m));
values.add(
new
double
[]{ Double.valueOf(money.get(k)) });
}
}
renderer.setXTitle(
"분류"
);
renderer.setYTitle(
"원"
);
renderer.setAxesColor(Color.WHITE);
renderer.setLabelsColor(Color.CYAN);
renderer.setXLabelsAlign(Align.LEFT);
renderer.setYLabelsAlign(Align.LEFT);
renderer.setPanEnabled(
false
,
false
);
renderer.setZoomEnabled(
false
,
false
);
renderer.setZoomRate(
1
.0f);
renderer.setBarSpacing(
0
.5f);
for
(
int
i =
0
; i < checkio.size(); i++) {
CategorySeries series =
new
CategorySeries(checkio.get(i));
double
[] v = values.get(i);
int
seriesLength = v.length;
for
(
int
k =
0
; k < seriesLength; k++) {
series.add(v[k]);
}
dataset.addSeries(series.toXYSeries());
}
GraphicalView gv = ChartFactory.getBarChartView(context, dataset,renderer, Type.DEFAULT);
ll.addView(gv);
}
catch
(Exception e){System.out.println(e+
"B"
);}
}
});
}
public
boolean
onKeyDown(
int
keyCode, KeyEvent event) {
switch
(keyCode) {
case
KeyEvent.KEYCODE_BACK:
finish();
Intent chartback =
new
Intent( getApplicationContext(), HomeActivity.
class
);
startActivity(chartback);
return
false
;
default
:
return
false
;
}
}
private
ArrayList<String> getXmlDataList(String filename, String str) {
String rss = SERVER_ADDRESS +
"/"
;
ArrayList<String> ret =
new
ArrayList<String>();
try
{
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setNamespaceAware(
true
);
XmlPullParser xpp = factory.newPullParser();
URL server =
new
URL(rss + filename);
InputStream is = server.openStream();
xpp.setInput(is,
"UTF-8"
);
int
eventType = xpp.getEventType();
while
(eventType != XmlPullParser.END_DOCUMENT) {
if
(eventType == XmlPullParser.START_TAG) {
if
(xpp.getName().equals(str)) {
ret.add(xpp.nextText());
}
}
eventType = xpp.next();
}
}
catch
(Exception e) {
System.out.println(e+
"B"
);
}
return
ret;
}
}