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

📄 dateplot.java

📁 EclipseTrader is a stock exchange analysis system, featuring shares pricing watch, intraday and hi
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                                        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 + -