int j=0;
// for each activity
logger.debug("retrieved number rows: "+listAtts.size());
for (Iterator iterator = listAtts.iterator(); iterator.hasNext();) {
SourceBean row = (SourceBean) iterator.next();
Activity activity=new Activity(row, beginDateFormat, beginHourFormat);
activities.add(activity);
logger.debug("Activity built from "+activity.getBeginDate()+" minutes"+activity.getMinutes()!=null?activity.getMinutes().toString():"");
if(maxDateFound!=null && !activity.getBeginDate().after(maxDateFound)){
}
else{
maxDateFound=activity.getBeginDate();
}
if(minDateFound!=null && !activity.getBeginDate().before(minDateFound)){
}
else{
minDateFound=activity.getBeginDate();
}
}
// count days
long daysBetween;
if(dateMin!=null && dateMax!=null){
logger.debug("use date limit defined in template: from "+dateMin.toString()+" to "+dateMax.toString());
daysBetween=daysBetween(dateMin,dateMax);
}
else{
logger.debug("use date limit found: from "+minDateFound.toString()+" to "+maxDateFound.toString());
daysBetween=daysBetween(minDateFound,maxDateFound);
}
logger.debug("Days between the two dates "+daysBetween);
// add a date to include extremis
long minutesBetweenLong=daysBetween*24*60*2; // raddoppio in caso di sovrapposizioni
int mbl=Long.valueOf(minutesBetweenLong).intValue();
DefaultXYZDataset dataset = new DefaultXYZDataset();
ArrayList<Long> xValuesList=new ArrayList<Long>();
ArrayList<Double> yValuesList=new ArrayList<Double>();
ArrayList<Double> zValuesList=new ArrayList<Double>();
annotations=new HashMap<String, AnnotationBlock>();
// run all the activities
for (Iterator iterator = activities.iterator(); iterator.hasNext();) {
Activity activity = (Activity) iterator.next();
// insert only if activty falls inside the min and max Range (idf defined)
if(dateMin!=null && dateMax!=null && (activity.getBeginDate().after(dateMax) || activity.getBeginDate().before(dateMin))){
logger.debug("Activity discarde because starting out of selected bounds in "+activity.getBeginDate());
}
else{
logger.debug("Inserting activity with begin date "+activity.getBeginDate()+" adn pattern "+activity.getPattern());
RegularTimePeriod rtp = new Day(activity.getBeginDate());
long secondmills= rtp.getFirstMillisecond();
Minute minute=activity.getMinutes();
for(int i=0;i<activity.getDuration();i++){
// convert from hour to number axis (da sessantesimi a centesimi!)
Integer hour=Integer.valueOf(minute.getHourValue());
Integer minuteValue=Integer.valueOf(minute.getMinute());
Double doubleMinuteValue=Double.valueOf(((double)minuteValue.intValue()));
// minuteValue : 60 = x :100
double convertedMinuteValue=(doubleMinuteValue*100)/60.0;
double convertedMinuteValueCent=convertedMinuteValue/100;
double hourD=(double)hour.intValue();
double converted=hourD+convertedMinuteValueCent;
String yVal=Double.valueOf(converted).toString();
xValuesList.add(new Long(secondmills));
yValuesList.add(Double.valueOf(yVal));
Object cosa=patternRangeIndex.get(activity.getPattern());
if(cosa!=null){
zValuesList.add(Double.valueOf(patternRangeIndex.get(activity.getPattern())).doubleValue()+0.5);
}
else{
zValuesList.add(-1.0);
}
// xvalues[j]=secondmills;
// yvalues[j]=Double.valueOf(yVal);
// zvalues[j]=patternRangeIndex.get(activity.getPattern())+0.5;
//System.out.println("Date: "+activity.getBeginDate()+":"+Double.valueOf(xvalues[j]).toString()+", Hour: "+Double.valueOf(yvalues[j]).toString()+", Value: "+Double.valueOf(zvalues[j]).toString());
if(annotations.get(activity.getCode())==null){
AnnotationBlock annotation=new AnnotationBlock(activity.getCode());
annotation.setXPosition(xValuesList.get(j).doubleValue());
annotation.setYPosition(yValuesList.get(j).doubleValue());
annotations.put(annotation.getAnnotation(), annotation);
}
minute=(Minute)minute.next();