📄 dateplot.java
字号:
x += indicatorPlot.getGridWidth(); } currentDate.add(Calendar.DATE, 1); } } } private void getWeeklyDate() { SimpleDateFormat monthYearFormatter = new SimpleDateFormat("yy"); //$NON-NLS-1$ SimpleDateFormat monthFormatter = new SimpleDateFormat("MMM"); //$NON-NLS-1$ Calendar oldDate = null; Calendar currentDate = Calendar.getInstance(); int x = indicatorPlot.getMarginWidth() + indicatorPlot.getGridWidth() / 2; for (Iterator iter = barData.iterator(); iter.hasNext(); ) { Bar bar = (Bar)iter.next(); currentDate.setTime(bar.getDate()); TickItem item = new TickItem(bar.getDate()); if (oldDate == null || currentDate.get(Calendar.MONTH) != oldDate.get(Calendar.MONTH)) { if (oldDate == null) { oldDate = Calendar.getInstance(); oldDate.setTime(bar.getDate()); } if (currentDate.get(Calendar.MONTH) != oldDate.get(Calendar.MONTH)) { item.tick = true; item.text = monthFormatter.format(currentDate.getTime()).substring(0, 1).toUpperCase(); } if (currentDate.get(Calendar.YEAR) != oldDate.get(Calendar.YEAR)) { item.tick = true; item.flag = true; item.text = monthYearFormatter.format(currentDate.getTime()); } oldDate.setTime(bar.getDate()); } dateList.add(item); x += indicatorPlot.getGridWidth(); } currentDate = Calendar.getInstance(); currentDate.set(Calendar.HOUR, 0); currentDate.set(Calendar.MINUTE, 0); currentDate.set(Calendar.SECOND, 0); currentDate.set(Calendar.MILLISECOND, 0); if (dateList.size() != 0) { currentDate.setTime(((TickItem)dateList.get(dateList.size() - 1)).date); currentDate.add(Calendar.DATE, 7); for (int i = 0; i < extendPeriod; i++) { TickItem item = new TickItem(currentDate.getTime()); if (oldDate == null || currentDate.get(Calendar.MONTH) != oldDate.get(Calendar.MONTH)) { if (oldDate == null) { oldDate = Calendar.getInstance(); oldDate.setTime(currentDate.getTime()); } if (currentDate.get(Calendar.MONTH) != oldDate.get(Calendar.MONTH)) { item.tick = true; item.text = monthFormatter.format(currentDate.getTime()).substring(0, 1).toUpperCase(); } if (currentDate.get(Calendar.YEAR) != oldDate.get(Calendar.YEAR)) { item.tick = true; item.flag = true; item.text = monthYearFormatter.format(currentDate.getTime()); } oldDate.setTime(currentDate.getTime()); } dateList.add(item); x += indicatorPlot.getGridWidth(); currentDate.add(Calendar.DATE, 7); } } } private void getMonthlyDate() { SimpleDateFormat yearFormatter = new SimpleDateFormat("yyyy"); //$NON-NLS-1$ Calendar oldDate = null; Calendar currentDate = Calendar.getInstance(); int x = indicatorPlot.getMarginWidth() + indicatorPlot.getGridWidth() / 2; for (Iterator iter = barData.iterator(); iter.hasNext(); ) { Bar bar = (Bar)iter.next(); currentDate.setTime(bar.getDate()); TickItem item = new TickItem(bar.getDate()); if (oldDate == null || currentDate.get(Calendar.MONTH) != oldDate.get(Calendar.MONTH)) { if (oldDate == null) { oldDate = Calendar.getInstance(); oldDate.setTime(bar.getDate()); } if (currentDate.get(Calendar.MONTH) != oldDate.get(Calendar.MONTH)) item.tick = true; if (currentDate.get(Calendar.YEAR) != oldDate.get(Calendar.YEAR)) { item.tick = true; item.flag = true; item.text = yearFormatter.format(currentDate.getTime()); } oldDate.setTime(bar.getDate()); } dateList.add(item); x += indicatorPlot.getGridWidth(); } currentDate = Calendar.getInstance(); currentDate.set(Calendar.HOUR, 0); currentDate.set(Calendar.MINUTE, 0); currentDate.set(Calendar.SECOND, 0); currentDate.set(Calendar.MILLISECOND, 0); if (dateList.size() != 0) { currentDate.setTime(((TickItem)dateList.get(dateList.size() - 1)).date); currentDate.add(Calendar.MONTH, 1); for (int i = 0; i < extendPeriod; i++) { TickItem item = new TickItem(currentDate.getTime()); if (oldDate == null || currentDate.get(Calendar.MONTH) != oldDate.get(Calendar.MONTH)) { if (oldDate == null) { oldDate = Calendar.getInstance(); oldDate.setTime(currentDate.getTime()); } if (currentDate.get(Calendar.MONTH) != oldDate.get(Calendar.MONTH)) item.tick = true; if (currentDate.get(Calendar.YEAR) != oldDate.get(Calendar.YEAR)) { item.tick = true; item.flag = true; item.text = yearFormatter.format(currentDate.getTime()); } oldDate.setTime(currentDate.getTime()); } dateList.add(item); x += indicatorPlot.getGridWidth(); currentDate.add(Calendar.MONTH, 1); } } } private void getMinuteDate() { SimpleDateFormat monthDayFormatter = new SimpleDateFormat("MMM d"); //$NON-NLS-1$ Calendar nextHour = null; Calendar oldDay = null; Calendar date = null; int x = indicatorPlot.getMarginWidth() + indicatorPlot.getGridWidth() / 2; for (Iterator iter = barData.iterator(); iter.hasNext(); ) { Bar bar = (Bar)iter.next(); if (nextHour == null) { nextHour = Calendar.getInstance(); nextHour.setTime(bar.getDate()); nextHour.set(Calendar.MINUTE, 0); nextHour.set(Calendar.SECOND, 0); if (interval != BarData.INTERVAL_MINUTE1 && interval != BarData.INTERVAL_MINUTE2) nextHour.add(Calendar.SECOND, 7200); else nextHour.add(Calendar.SECOND, 3600); } if (oldDay == null) { oldDay = Calendar.getInstance(); oldDay.setTime(bar.getDate()); } TickItem item = new TickItem(bar.getDate()); if (date == null) date = Calendar.getInstance(); date.setTime(bar.getDate()); if (date.get(Calendar.DATE) != oldDay.get(Calendar.DATE)) { item.tick = true; item.flag = true; item.text = monthDayFormatter.format(date.getTime()); oldDay = date; } else { if (date.after(nextHour) || date.equals(nextHour)) { if (interval < BarData.INTERVAL_MINUTE30) { item.tick = true; item.flag = false; item.text = date.get(Calendar.HOUR_OF_DAY) + ":00"; //$NON-NLS-1$ } } } if (date.after(nextHour) || date.equals(nextHour)) { nextHour = (Calendar) date.clone(); nextHour.set(Calendar.MINUTE, 0); nextHour.set(Calendar.SECOND, 0); if (interval != BarData.INTERVAL_MINUTE1 && interval != BarData.INTERVAL_MINUTE2) nextHour.add(Calendar.SECOND, 7200); else nextHour.add(Calendar.SECOND, 3600); } dateList.add(item); x += indicatorPlot.getGridWidth(); } if (date != null) { date.set(Calendar.SECOND, 0); date.set(Calendar.MILLISECOND, 0); for (int i = 0; i < extendPeriod; i++) { if (interval == BarData.INTERVAL_MINUTE1) date.add(Calendar.MINUTE, 1); else if (interval == BarData.INTERVAL_MINUTE2) date.add(Calendar.MINUTE, 2); else if (interval == BarData.INTERVAL_MINUTE5) date.add(Calendar.MINUTE, 5); else if (interval == BarData.INTERVAL_MINUTE10) date.add(Calendar.MINUTE, 10); else if (interval == BarData.INTERVAL_MINUTE15) date.add(Calendar.MINUTE, 15); else if (interval == BarData.INTERVAL_MINUTE30) date.add(Calendar.MINUTE, 30); else if (interval == BarData.INTERVAL_MINUTE60) date.add(Calendar.MINUTE, 60); if (nextHour == null) { nextHour = Calendar.getInstance(); nextHour.setTime(date.getTime()); nextHour.set(Calendar.MINUTE, 0); nextHour.set(Calendar.SECOND, 0); if (interval != BarData.INTERVAL_MINUTE1 && interval != BarData.INTERVAL_MINUTE2) nextHour.add(Calendar.SECOND, 7200); else nextHour.add(Calendar.SECOND, 3600); } if (oldDay == null) { oldDay = Calendar.getInstance(); oldDay.setTime(date.getTime()); } TickItem item = new TickItem(date.getTime()); if (date.get(Calendar.DATE) != oldDay.get(Calendar.DATE)) { item.tick = true; item.flag = true; item.text = monthDayFormatter.format(date.getTime()); oldDay = date; } else { if (date.after(nextHour) || date.equals(nextHour)) { if (interval < BarData.INTERVAL_MINUTE30) { item.tick = true; item.flag = false; item.text = date.get(Calendar.HOUR_OF_DAY) + ":00"; //$NON-NLS-1$ } } } if (date.after(nextHour) || date.equals(nextHour)) { nextHour = (Calendar) date.clone(); nextHour.set(Calendar.MINUTE, 0); nextHour.set(Calendar.SECOND, 0); if (interval != BarData.INTERVAL_MINUTE1 && interval != BarData.INTERVAL_MINUTE2) nextHour.add(Calendar.SECOND, 7200); else nextHour.add(Calendar.SECOND, 3600); } dateList.add(item); x += indicatorPlot.getGridWidth(); } } } public void setLabel(int x) { int index = (x - getIndicatorPlot().getPlotLocation().x - indicatorPlot.getMarginWidth()) / indicatorPlot.getGridWidth(); if (index >= 0 && index < dateList.size()) { if (interval < BarData.INTERVAL_DAILY) label.setText(" " + tf.format(((TickItem)dateList.get(index)).date) + " "); //$NON-NLS-1$ //$NON-NLS-2$ else label.setText(" " + df.format(((TickItem)dateList.get(index)).date) + " "); //$NON-NLS-1$ //$NON-NLS-2$ label.pack(); label.setBounds(x - label.getBounds().width / 2, 1, label.getBounds().width, 14); } } public void hideLabel() { label.setBounds(0, 0, 0, 0); } public List getDateList() { return dateList; } public void redrawAll() { indicatorPlot.redrawAll(); scalePlot.redrawAll(); redraw(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -