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

📄 datetimeselector.java

📁 CRM源码This file describes some issues that should be implemented in future and how it should be imple
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
    }

    private void updateDays() {
        Date tt = (Date) shownDate.clone();
        tt.setMonth(tt.getMonth() - 1);
        Date[][] dates = DateHelper.getCalendarDates(tt);

        if(mode == QDateFieldView.MODE_SEARCH && startDate != null && endDate != null) {
            if(startDate.getTime() > endDate.getTime()) {
                Date tmp = (Date) startDate.clone();
                startDate = (Date) endDate.clone();
                endDate = (Date) tmp.clone();
            }
        }

        boolean tryToSetunselected;
        for(int i=0; i<dates.length; i++) {
            for(int j=0; j<dates[0].length; j++) {
                tryToSetunselected = true;
                DateElement element = new DateElement(dates[i][j].getDate());
                element.addStyleName(COMMON_CELL_STYLE);
                if(shownDate.getMonth() == dates[i][j].getMonth()) {
                    element.addStyleName(SELECTABLE_CELL_STYLE);
                    element.addDataElementLisner(this);
                }

                if(mode != QDateFieldView.MODE_SEARCH) {
                    if(isEqual(startDate, dates[i][j])) {
                        element.addStyleName(SELECTED_CELL_STYLE);
                        tryToSetunselected = false;
                    }
                } else {
                    if(startDate != null && endDate != null) {
                        if(!chooseFirstDate) {
                            if(isEqual(startDate, dates[i][j])) {
                                element.addStyleName(SELECTED_CELL_STYLE);
                                tryToSetunselected = false;
                            }
                        } else {
                            Date tmp = dates[i][j];
                            int startYear = startDate.getYear();
                            int endYear = endDate.getYear();
                            int tmpYear = tmp.getYear();
                            int startMonth = startDate.getMonth();
                            int endMonth = endDate.getMonth();
                            int tmpMonth = tmp.getMonth();
                            int startdate = startDate.getDate();
                            int enddate = endDate.getDate();
                            int tmpdate = tmp.getDate();
                            
                            if(startYear == tmpYear && endYear == tmpYear) {
                                if(startMonth == tmpMonth && endMonth == tmpMonth) {
                                    if(startdate <= tmpdate && enddate >= tmpdate) {
                                        element.addStyleName(SELECTED_CELL_STYLE);
                                        tryToSetunselected = false;
                                    }
                                } else if(startMonth < tmpMonth && endMonth == tmpMonth) {
                                    if(enddate >= tmpdate) {
                                        element.addStyleName(SELECTED_CELL_STYLE);
                                        tryToSetunselected = false;
                                    }
                                } else if(startMonth < tmpMonth && endMonth > tmpMonth) {
                                    element.addStyleName(SELECTED_CELL_STYLE);
                                    tryToSetunselected = false;
                                } else if(startMonth == tmpMonth && endMonth > tmpMonth) {
                                    if(startdate <= tmpdate) {
                                        element.addStyleName(SELECTED_CELL_STYLE);
                                        tryToSetunselected = false;
                                    }
                                }
                            } else if(startYear < tmpYear && endYear == tmpYear) {
                                if(endMonth == tmpMonth) {
                                    if(enddate >= tmpdate) {
                                        element.addStyleName(SELECTED_CELL_STYLE);
                                        tryToSetunselected = false;
                                    }
                                } else if(endMonth > tmpMonth) {
                                    element.addStyleName(SELECTED_CELL_STYLE);
                                    tryToSetunselected = false;
                                }
                            } else if(startYear < tmpYear && endYear > tmpYear) {
                                element.addStyleName(SELECTED_CELL_STYLE);
                                tryToSetunselected = false;
                            } else if(startYear == tmpYear && endYear > tmpYear) {
                                if(startMonth == tmpMonth) {
                                    if(startdate <= tmpdate) {
                                        element.addStyleName(SELECTED_CELL_STYLE);
                                        tryToSetunselected = false;
                                    }
                                } else if(startMonth < tmpMonth) {
                                    element.addStyleName(SELECTED_CELL_STYLE);
                                    tryToSetunselected = false;
                                }
                            }
                        }
                    } else {
                        if(isEqual(startDate, dates[i][j]) || isEqual(endDate, dates[i][j])) {
                            element.addStyleName(SELECTED_CELL_STYLE);
                            tryToSetunselected = false;
                        }
                    }
                }
                if(tryToSetunselected && dates[i][j].getMonth() != shownDate.getMonth()) {
                    element.addStyleName(UNSELECTABLE_CELL_STYLE);
                }
                daysTableGrid.setWidget(i, j, element);
            }
        }
    }

    private boolean isEqual(Date one, Date two) {
        if(one != null &&
            one.getYear() == two.getYear() &&
            one.getMonth() == two.getMonth() &&
            one.getDate() == two.getDate()
        ) {
            return true;
        } else {
            return false;
        }
    }

    private void updateMonth() {
        monthComboBox.setSelectedIndex(shownDate.getMonth());
    }

    private void updateYear() {
        yearTextBox.setText(String.valueOf(shownDate.getYear() + BEGIN_YEAR));
    }

    public void setEnabled(boolean enbled) {
        yearTextBox.setEnabled(enbled);
        timeTextBox.setEnabled(enbled);
    }
    
    public void updateTime() {
        if(mode == QDateFieldView.MODE_SEARCH) {
            timeTextBox.setText("");
            timeTextBox.setEnabled(false);
        } else {
            if(isReadOnly) {
                setEnabled(false);
            } else {
                boolean isDisabled = (mode == QDateFieldView.MODE_DISABLED);
                setEnabled(!isDisabled);
            }
            if(startDate == null) {
                timeTextBox.setText(StringUtil.getValueAsString(shownDate.getHours(), 2) + TIME_SEPARATOR
                    + StringUtil.getValueAsString(shownDate.getMinutes(), 2));
            } else {
                timeTextBox.setText(StringUtil.getValueAsString(startDate.getHours(), 2) + TIME_SEPARATOR
                    + StringUtil.getValueAsString(startDate.getMinutes(), 2));
            }
        }
    }

    public void setMode(int mode) {
        this.mode = mode;
        if(mode == QDateFieldView.MODE_SEARCH) {
            chooseFirstDate = true;
        }
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    private boolean handleClick() {
        if(isReadOnly) {
            return mode == QDateFieldView.MODE_SEARCH;
        }
        return true;
    }
    
    public void onClick(Widget sender) {
        if(handleClick()) {
            if(setSelectedDates(sender)) {
                updateDays();
            }
        }
    }

    private boolean setSelectedDates(Widget sender) {
        if(mode == QFormElementView.MODE_DISABLED) {
            return false;
        }
        
        DateElement el = (DateElement) sender;
        if(mode != QDateFieldView.MODE_SEARCH) {
            startDate = createDate(shownDate, el.getDate());
            if(startDate.equals(previouslySelectedElement)) { //the same element was clicked
                fireDateTimeSelectorEvent();
                return false;
            }
            previouslySelectedElement = startDate;
        } else {
            if(chooseFirstDate) {
                chooseFirstDate = false;
                startDate = createDate(shownDate, el.getDate());
                endDate = (Date) startDate.clone();
                previouslySelectedElement = (Date) startDate.clone();
            } else {
                chooseFirstDate = true;
                endDate = createDate(shownDate, el.getDate());
                if(endDate.equals(previouslySelectedElement)) { //the same element was clicked
                    fireDateTimeSelectorEvent();
                    return false;
                }
                previouslySelectedElement = endDate;
            }
        }
        return true;
    }
    
    private Date createDate(Date d, int date) {
        return new Date(d.getYear(), d.getMonth(), date, d.getHours(), d.getMinutes());
    }

    public void onDoubleClick(Widget sender) {
        if(handleClick()) {
            if(setSelectedDates(sender)) {
                fireDateTimeSelectorEvent();
            }
        }
    }

    public void setPreviouslySelectedElement(Date previouslySelectedElement) {
        this.previouslySelectedElement = previouslySelectedElement;
    }

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -