⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 qdatefieldviewimpl.java

📁 CRM源码This file describes some issues that should be implemented in future and how it should be imple
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
        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 + -