📄 qdatefieldviewimpl.java
字号:
for (int i=0; i<labels.size(); i++) {
Label label = (Label) labels.get(i);
if (((Integer) hotDates.get(label)).intValue() >= 0) {
label.setStyleName("iconButton");
label.addClickListener(labelClickListener);
label.addMouseListener(labelMouseListener);
}
hotDatesPanel.add(label);
}
hotDatesDialog.setWidget(hotDatesPanel, ButtonData.CANCEL);
}
private ArrayList getLabels() {
if (hotDates != null) {
return hotDates.getKeys();
}
hotDates = new OrderedHashMap();
hotDates.put(new Label("Current month"), new Integer(CURRENT_MONTH));
hotDates.put(new Label("Current year"), new Integer(CURRENT_YEAR));
hotDates.put(new Label("Month to date"), new Integer(MONTH_TO_DATE));
hotDates.put(new Label("Year to date"), new Integer(YEAR_TO_DATE));
hotDates.put(new Label("Previous month"), new Integer(PREVIOUS_MONTH));
hotDates.put(new Label("Previous year"), new Integer(PREVIOUS_YEAR));
hotDates.put(new Label("Last 30 days"), new Integer(LAST_30_DAYS));
hotDates.put(new Label("Last 3 months"), new Integer(LAST_3_MONTH));
hotDates.put(new Label("Last 6 months"), new Integer(LAST_6_MONTH));
hotDates.put(new Label("Last 12 months"), new Integer(LAST_12_MONTH));
hotDates.put(new Label("Next 30 days"), new Integer(NEXT_30_DAYS));
hotDates.put(new Label("Next 3 months"), new Integer(NEXT_3_MONTH));
hotDates.put(new Label("Next 6 months"), new Integer(NEXT_6_MONTH));
hotDates.put(new Label("Next 12 months"), new Integer(NEXT_12_MONTH));
hotDates.put(new Label(SEPARATOR_ITEM_TEXT), new Integer(NOT_ACTIVE_ELEMENT));
hotDates.put(new Label("Custom dates"), new Integer(CUSTOM_DATES));
hotDates.put(new Label("NULL"), new Integer(NULL_DATE));
return hotDates.getKeys();
}
private static final MouseListener labelMouseListener = new MouseListener() {
public void onMouseDown(Widget sender, int x, int y) {
}
public void onMouseEnter(Widget sender) {
sender.setStyleName("calendar_hotDates_highlighted");
}
public void onMouseLeave(Widget sender) {
sender.setStyleName("calendar_hotDates");
}
public void onMouseMove(Widget sender, int x, int y) {
}
public void onMouseUp(Widget sender, int x, int y) {
}
};
private ClickListener labelClickListener = new ClickListener() {
public void onClick(Widget sender) {
int index = ((Integer) hotDates.get(sender)).intValue();
sender.setStyleName("calendar_hotDates");
hotDatesDialog.hide();
Date startDate = null;
Date endDate = null;
switch(index) {
case CURRENT_MONTH:
startDate = DateHelper.getFirstMonthDate(model.getData().getNowDate());
endDate = DateHelper.getLastMonthDate(model.getData().getNowDate());
break;
case CURRENT_YEAR:
startDate = DateHelper.getFirstYearDate(model.getData().getNowDate());
endDate = DateHelper.getLastYearDate(model.getData().getNowDate());
break;
case MONTH_TO_DATE:
startDate = DateHelper.getFirstMonthDate(model.getData().getNowDate());
endDate = model.getData().getNowDate();
break;
case YEAR_TO_DATE:
startDate = DateHelper.getFirstYearDate(model.getData().getNowDate());
endDate = model.getData().getNowDate();
break;
case PREVIOUS_MONTH:
startDate = (Date) model.getData().getNowDate().clone();
startDate.setMonth(startDate.getMonth() - 1);
endDate = DateHelper.getLastMonthDate(startDate);
startDate = DateHelper.getFirstMonthDate(startDate);
break;
case PREVIOUS_YEAR:
startDate = (Date) model.getData().getNowDate().clone();
startDate.setYear(startDate.getYear() - 1);
endDate = DateHelper.getLastYearDate(startDate);
startDate = DateHelper.getFirstYearDate(startDate);
break;
case LAST_30_DAYS:
startDate = (Date) model.getData().getNowDate().clone();
startDate.setDate(startDate.getDate() - 29);
endDate = model.getData().getNowDate();
break;
case LAST_3_MONTH:
startDate = (Date) model.getData().getNowDate().clone();
startDate.setMonth(startDate.getMonth() - 3);
endDate = model.getData().getNowDate();
break;
case LAST_6_MONTH:
startDate = (Date) model.getData().getNowDate().clone();
startDate.setMonth(startDate.getMonth() - 6);
endDate = model.getData().getNowDate();
break;
case LAST_12_MONTH:
startDate = (Date) model.getData().getNowDate().clone();
startDate.setMonth(startDate.getMonth() - 12);
endDate = model.getData().getNowDate();
break;
case NEXT_30_DAYS:
startDate = model.getData().getNowDate();
endDate = (Date) model.getData().getNowDate().clone();
endDate.setDate(endDate.getDate() + 29);
break;
case NEXT_3_MONTH:
startDate = model.getData().getNowDate();
endDate = (Date) model.getData().getNowDate().clone();
endDate.setMonth(endDate.getMonth() + 3);
break;
case NEXT_6_MONTH:
startDate = model.getData().getNowDate();
endDate = (Date) model.getData().getNowDate().clone();
endDate.setMonth(endDate.getMonth() + 6);
break;
case NEXT_12_MONTH:
startDate = model.getData().getNowDate();
endDate = (Date) model.getData().getNowDate().clone();
endDate.setMonth(endDate.getMonth() + 12);
break;
case CUSTOM_DATES:
QDateFieldViewImpl.this.onClick(pickButton);
return;
case NULL_DATE:
model.getData().clear();
model.getData().setFormatedDate("null");
dateTimeTextBox.setText("null");
return;
}
model.getData().setStartDate(startDate);
model.getData().setEndDate(endDate);
onOkButtonClick(false);
}
};
/**
* Shows date dialog.
* @param sender
*/
public void onClick(Widget sender) {
showDatePickerDialog = true;
if (!userUpdate && !isReportDesignMode()) {
if (isDisabled()) {
if (!getModel().getBaseData().isEmpty()) {
showDatePickerDialog();
}
} else {
showDatePickerDialog();
}
}
}
private void showDatePickerDialog() {
showDatePickerDialog = false;
if (datePickerDialog == null) {
initializeDatePickerDialog(model.getData().getNowDate());
}
calendar.setMode(getViewMode());
if (!super.isSearchMode()) {
Date selectedDate = model.getData().getStartDate();
Date dateToSet = null;
if (selectedDate != null) {
dateToSet = (Date) selectedDate.clone();
}
if (model.getData().getNowDate() != null) {
calendar.setCalendarState(dateToSet, null, (Date) model.getData().getNowDate().clone());
}
} else {
Date startDate = model.getData().getStartDate();
Date endDate = model.getData().getEndDate();
Date startDateToSet = null;
if (startDate != null) {
startDateToSet = (Date) startDate.clone();
}
Date endDateToSet = null;
if (endDate != null) {
endDateToSet = (Date) endDate.clone();
}
if (model.getData().getNowDate() != null) {
calendar.setCalendarState(startDateToSet, endDateToSet, (Date) model.getData().getNowDate().clone());
}
}
calendar.setPreviouslySelectedElement(null);
calendar.updateTime();
datePickerDialog.show(dateTimeTextBox);
}
private boolean handleClick() {
if (model.getMeta().isReadOnly()) {
return isSearchMode();
}
return true;
}
private void initializeDatePickerDialog(Date nowDate) {
DockPanel mainPanel = new DockPanel();
DockPanel btnsPanel = new DockPanel();
calendar = new DateTimeSelector(nowDate, model.getMeta().isReadOnly());
calendar.setMode(getViewMode());
calendar.addDateTimeSelectorListener(new DateTimeSelector.DateTimeSelectorListener() {
public void onDoubleClick() {
onOkButtonClick(true);
}
});
mainPanel.add(calendar, DockPanel.CENTER);
mainPanel.add(btnsPanel, DockPanel.SOUTH);
datePickerDialog = new OkayCancelPopup(getModel().getBaseMeta().getCaption() + CALENDAR, true);
datePickerDialog.setWidget(mainPanel);
datePickerDialog.setUISettings(model.getBaseMeta().getUISettings());
datePickerDialog.getEventSource().addEventListener(new EventListener() {
public void onEvent(Event event, Widget sender) {
if (OkayCancelPopup.Events.OK == event) {
if (!isDisabled()) {
onOkButtonClick(true);
}
} else if (OkayCancelPopup.Events.CANCEL == event) {
datePickerDialog.hide();
}
}
});
}
private void onOkButtonClick(boolean wasDialogShown) {
if (isDisabled() || !handleClick()) {
return;
}
if (wasDialogShown) {
datePickerDialog.hide();
}
Date startDate = wasDialogShown ? calendar.getStartDate() : model.getData().getStartDate();
if (startDate != null) {
if (wasDialogShown) {
model.getData().setStartDate(new Date(startDate.getTime()));
}
if (!super.isSearchMode()) {
model.getData().setEndDate(null);
fireUserActions(startDate, null);
} else {
if (wasDialogShown) {
Date endDate = calendar.getEndDate();
model.getData().setEndDate(endDate == null ? startDate : new Date(endDate.getTime()));
}
fireUserActions(
model.getData().getStartDate(),
model.getData().getEndDate()
);
}
} else {
dateTimeTextBox.setText("");
}
}
protected void setClientWidth(String clientWidth) {
dateTimeTextBox.setWidth(clientWidth);
}
public int getClientWidth() {
return dateTimeTextBox.getOffsetWidth();
}
public int getFilledWidth() {
return super.getFilledWidth() + pickButton.getOffsetWidth();
}
protected DialogUISettings getUISettings() {
return datePickerDialog != null ? datePickerDialog.getUISettings() : null;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -