import javax.swing.ComboBoxModel; //导入方法依赖的package包/类
@Override
public TimeModel getTimeModel() {
Calendar calendarWork = Calendar.getInstance();
// --- Getting Start time as Long ---------------------------
Calendar startCalenderMerged = Calendar.getInstance();
Date startDate = (Date) this.getJSpinnerDateStart().getValue();
Date startTime = (Date) this.getJSpinnerTimeStart().getValue();
int startMillis = (Integer) this.getJSpinnerMillisStart().getValue();
calendarWork.setTime(startDate);
startCalenderMerged.set(Calendar.DAY_OF_MONTH, calendarWork.get(Calendar.DAY_OF_MONTH));
startCalenderMerged.set(Calendar.MONTH, calendarWork.get(Calendar.MONTH));
startCalenderMerged.set(Calendar.YEAR, calendarWork.get(Calendar.YEAR));
calendarWork.setTime(startTime);
startCalenderMerged.set(Calendar.HOUR_OF_DAY, calendarWork.get(Calendar.HOUR_OF_DAY));
startCalenderMerged.set(Calendar.MINUTE, calendarWork.get(Calendar.MINUTE));
startCalenderMerged.set(Calendar.SECOND, calendarWork.get(Calendar.SECOND));
startCalenderMerged.set(Calendar.MILLISECOND, startMillis);
Date start = startCalenderMerged.getTime();
Long startLong = start.getTime();
// --- Getting Stop time as Long ----------------------------
Calendar stopCalenderMerged = Calendar.getInstance();
Date stopDate = (Date) this.getJSpinnerDateStop().getValue();
Date stopTime = (Date) this.getJSpinnerTimeStop().getValue();
int stopMillis = (Integer) this.getJSpinnerMillisStop().getValue();
calendarWork.setTime(stopDate);
stopCalenderMerged.set(Calendar.DAY_OF_MONTH, calendarWork.get(Calendar.DAY_OF_MONTH));
stopCalenderMerged.set(Calendar.MONTH, calendarWork.get(Calendar.MONTH));
stopCalenderMerged.set(Calendar.YEAR, calendarWork.get(Calendar.YEAR));
calendarWork.setTime(stopTime);
stopCalenderMerged.set(Calendar.HOUR_OF_DAY, calendarWork.get(Calendar.HOUR_OF_DAY));
stopCalenderMerged.set(Calendar.MINUTE, calendarWork.get(Calendar.MINUTE));
stopCalenderMerged.set(Calendar.SECOND, calendarWork.get(Calendar.SECOND));
stopCalenderMerged.set(Calendar.MILLISECOND, stopMillis);
Date stop = stopCalenderMerged.getTime();
Long stopLong = stop.getTime();
// --- Get the current index of the unit list ---------------
ComboBoxModel cbm = this.getJComboBoxWidthUnit().getModel();
TimeUnit timeUnit = (TimeUnit) cbm.getSelectedItem();
int indexSelected = 0;
for (int i = 0; i < cbm.getSize(); i++) {
if (cbm.getElementAt(i)==timeUnit) {
indexSelected = i;
break;
}
}
// --- Getting step width -----------------------------------
String stepString = this.getJTextFieldWidthValue().getText();
long step;
long stepInUnit;
if (stepString==null) {
step = new Long(0);
} else if (stepString.equals("")) {
step = new Long(0);
} else {
stepInUnit = Long.parseLong(this.getJTextFieldWidthValue().getText());
step = stepInUnit * timeUnit.getFactorToMilliseconds();
}
// --- Getting the time format ------------------------------
String timeFormat = this.getJPanelTimeFormater().getTimeFormat();
// --- Set TimeModel ----------------------------------------
TimeModelDiscrete timeModelDiscrete = new TimeModelDiscrete(startLong, stopLong, step);
timeModelDiscrete.setStepDisplayUnitAsIndexOfTimeUnitVector(indexSelected);
timeModelDiscrete.setTimeFormat(timeFormat);
return timeModelDiscrete;
}