예제 #1
0
        public override void render(xGraphics g)
        {
            g.setColor(0xff002000);
            g.fillRect(0, 0, getW(), getH());

            if (_isProcessing)
            {
                g.setColor(C.COLOR_ORANGE);
                g.drawStringInRect(mContext.getFontSmallB(), "Đang xử lý", 0, 0, getW(), getH(), xGraphics.HCENTER | xGraphics.VCENTER);
                return;
            }

            g.setColor(C.COLOR_ORANGE);

            String sz = String.Format("MãCP (giá, thay đổi %): Tăng/Giảm index: {0:F2}/{1:F2}", totalIndexInc, totalIndexDec);

            g.drawString(mContext.getFontSmall(), sz, 8, 1, xGraphics.TOP);

            if (totalIndexInc == 0 && totalIndexDec == 0)
            {
                return;
            }

            double total      = totalIndexInc + Math.Abs(totalIndexDec);
            float  incPercent = (float)(totalIndexInc / total);
            float  decPercent = (float)(Math.Abs(totalIndexDec) / total);

            if (incPercent < 0.25)
            {
                incPercent = 0.25f; decPercent = 1.0f - incPercent;
            }
            if (decPercent < 0.25)
            {
                decPercent = 0.25f; incPercent = 1.0f - decPercent;
            }

            float incW = (getW() - 4) * 0.5f; //incPercent;
            float decW = (getW() - 4) * 0.5f; //decPercent;

            int   maxItems = 22;
            int   incCnt   = vChangeInc.size() > maxItems?maxItems:vChangeInc.size();
            float itemH    = (getH() - 20) / maxItems;
            int   decCnt   = vChangeDec.size() > maxItems?maxItems:vChangeDec.size();

            int x0 = 1;
            int x1 = (int)(getW() - decW);

            float incBiggest = 0;
            float decBiggest = 0;

            ChangeIndexItem first = (ChangeIndexItem)vChangeInc.firstElement();

            if (vChangeInc.size() > 0)
            {
                incBiggest = 1.1f * first.modifiedValue;
            }

            first = (ChangeIndexItem)vChangeDec.firstElement();
            if (vChangeDec.size() > 0)
            {
                decBiggest = 1.1f * first.modifiedValue;
            }

            float maxBiggest = Math.Max(incBiggest, decBiggest);

            int titleH = 20;

            //  increase
            for (int i = 0; i < incCnt; i++)
            {
                ChangeIndexItem item = (ChangeIndexItem)vChangeInc.elementAt(i);

                g.setColor(C.COLOR_GREEN_DARK);
                float y     = titleH + i * itemH;
                float itemW = item.modifiedValue * incW / maxBiggest;

                g.fillRectF(x0, y, itemW, itemH - 1);

                g.setColor(C.COLOR_WHITE);
                stPriceboardState ps = mContext.mPriceboard.getPriceboard(item.shareID);

                sz = String.Format("{0}({1:F1}, {2:F1}%): {3:F3}", ps.code, item.price, item.modifiedPercent, item.modifiedValue);
                g.drawStringF(mContext.getFontSmall(), sz, x0 + 8, y + itemH / 2, xGraphics.VCENTER);

                item.x = x0;
                item.y = y;
                item.w = incW;
                item.h = itemH;
            }

            //  decrease
            for (int i = 0; i < decCnt; i++)
            {
                ChangeIndexItem item = (ChangeIndexItem)vChangeDec.elementAt(i);

                g.setColor(C.COLOR_RED);
                float y     = titleH + i * itemH;
                float itemW = item.modifiedValue * decW / maxBiggest;

                g.fillRectF(x1, y, itemW, itemH - 1);

                g.setColor(C.COLOR_WHITE);
                stPriceboardState ps = mContext.mPriceboard.getPriceboard(item.shareID);

                sz = String.Format("{0}({1:F1}, {2:F1%}): {3:F3}", ps.code, item.price, item.modifiedPercent, item.modifiedValue);
                g.drawStringF(mContext.getFontSmall(), sz, x1 + 8, y + itemH / 2, xGraphics.VCENTER);

                item.x = x1;
                item.y = y;
                item.w = decW;
                item.h = itemH;
            }

            if (currentSelected != null && currentSelected.selected)
            {
                g.setColor(C.COLOR_ORANGE);
                g.drawRectF(currentSelected.x, currentSelected.y, currentSelected.w, currentSelected.h);
            }
        }