/** * */ package org.xmind.ui.datepicker; import static java.util.Calendar.DATE; import static java.util.Calendar.MONTH; import java.util.Calendar; import org.eclipse.draw2d.IFigure; import org.eclipse.draw2d.Layer; import org.eclipse.draw2d.geometry.Rectangle; class NextYearAnimation extends CalendarAnimation { private int distance; public NextYearAnimation(IAnimationAdvisor advisor) { super(advisor); // TODO Auto-generated constructor stub } @Override protected IFigure createNewPanel() { IFigure newPanel = new Layer(); newPanel.setLayoutManager(new DatePanelLayout()); return newPanel; } @Override protected void createNewDays() { Calendar date = DatePicker.getCalendarStart(oldDays.get(0).getDate(), advisor .getNewYear(), advisor.getNewMonth()); for (int i = 0; i < DatePicker.TOTAL_DAYS; i++) { if (i > 0) { date = (Calendar) date.clone(); date.add(DATE, 1); } DayFigure dayFigure = new DayFigure(); dayFigure.setDate(date); advisor.initNewDay(dayFigure); newPanel.add(dayFigure); if (date.get(MONTH) == advisor.getNewMonth()) { newDays.add(dayFigure); } } } @Override protected Rectangle createOldInitConstraint() { distance = oldSize.width + 10; return new Rectangle(0, 0, oldSize.width, oldSize.height); } @Override protected Rectangle createOldFinalConstraint() { return new Rectangle(-distance, 0, oldSize.width, oldSize.height); } @Override protected Rectangle createNewInitConstraint() { return new Rectangle(distance, 0, oldSize.width, oldSize.height); } @Override protected Rectangle createNewFinalConstraint() { return new Rectangle(0, 0, oldSize.width, oldSize.height); } @Override protected void removeOldDays() { advisor.getLayer().remove(advisor.getPanel()); } @Override protected void updateJobs() { advisor.addYearsToRoll(-1); } }