MultilineArrowControl.java
上传用户:luxiaowei
上传日期:2022-06-06
资源大小:58k
文件大小:4k
源码类别:

J2ME

开发平台:

Java

  1. /*
  2.  * To change this template, choose Tools | Templates
  3.  * and open the template in the editor.
  4.  */
  5. package com.MOM.ui.control;
  6. import com.MOM.Constants;
  7. import com.MOM.resources.Resources;
  8. import com.framework.DisplayManager;
  9. import com.framework.GTantra;
  10. import com.framework.TextControl;
  11. import com.framework.UIControl;
  12. import com.framework.Util;
  13. import javax.microedition.lcdui.Graphics;
  14. /**
  15.  *
  16.  * @author Swaroop Kumar
  17.  */
  18. public class MultilineArrowControl extends UIControl{
  19.     TextControl control;
  20.     boolean paintLeftArrow,paintRightArrow;
  21.     int leftArrowColor = 0;
  22.     public MultilineArrowControl(String text,boolean paintLeftArrow,boolean paintRightArrow,GTantra font) {
  23.         setWidth(DisplayManager.getInst().getWidth());
  24.         control = new TextControl(text, width - (Constants.LEFT_PADDING * 3)- Constants.RIGHT_ARROW_PADDING - Constants.LEFT_ARROW_WIDTH - Resources.getInstance().getFontRightArrow().getStringWidth(Constants.RIGHT_ARROW_TEXT), font, GTantra.TEXT_LEFT, false);
  25.         control.setY(Constants.TOP_PADDING);
  26.         setHeight(control.getHeight() + (Constants.TOP_PADDING * 2) );
  27.         control.setX((Constants.LEFT_PADDING * 4) + Constants.LEFT_ARROW_WIDTH);
  28.         control.setSelectionFont(font);
  29.         this.paintLeftArrow = paintLeftArrow;
  30.         this.paintRightArrow = paintRightArrow;
  31.     }
  32.     public void setSelectable(boolean selectable) {
  33.         super.setSelectable(selectable);
  34.         if(!selectable)
  35.         {
  36.             control.setY(0);
  37.             setHeight(control.getHeight());
  38.             if(getParent() != null)
  39.             {
  40.                 getParent().resize();
  41.             }
  42.         }
  43.     }
  44.     
  45.     public void setLeftArrowColor(int leftArrowColor) {
  46.         this.leftArrowColor = leftArrowColor;
  47.     }
  48.     
  49.     public void showNotify() {
  50.         super.showNotify();
  51.         control.showNotify();
  52.     }
  53.     public void hideNotify() {
  54.         super.hideNotify();
  55.         control.hideNotify();
  56.     }
  57.     public void setSelected(boolean selected) {
  58.         super.setSelected(selected);
  59.         control.setSelected(selected);
  60.     }
  61.     public void paint(Graphics g) {
  62.         if(paintLeftArrow)
  63.         {
  64.             if(isSelected())
  65.             {
  66.                 g.setColor(0xffffff);
  67.                 
  68.             }else
  69.                 g.setColor(leftArrowColor);
  70.             if(isSelectable())
  71.             {
  72.                 Util.fillTriangle(g, Constants.LEFT_PADDING + Constants.LEFT_ARROW_WIDTH , (Constants.TOP_PADDING * 2)+ Constants.LEFT_ARROW_WIDTH , Constants.LEFT_ARROW_WIDTH << 1, 1);
  73.             }else{
  74.                 Util.fillTriangle(g, Constants.LEFT_PADDING + Constants.LEFT_ARROW_WIDTH , Constants.TOP_PADDING + Constants.LEFT_ARROW_WIDTH , Constants.LEFT_ARROW_WIDTH << 1, 1);
  75.             }
  76.             
  77.         }
  78.         control.paintUI(g);
  79.         if(paintRightArrow)
  80.         {
  81.             GTantra font = Resources.getInstance().getFontRightArrow();
  82.             if(isSelected())
  83.             {
  84.                 font.setColor(0xffffff);
  85.             }else{
  86.                 font.setColor(0);
  87.             }
  88.             font.drawString(g, Constants.RIGHT_ARROW_TEXT, width - Constants.LEFT_PADDING - font.getStringWidth(Constants.RIGHT_ARROW_TEXT), (height - font.getFontHeight()) >> 1, GTantra.TEXT_LEFT);
  89.         }
  90.         if(isSelectable() && !isSelected())
  91.         {
  92.             g.setColor(0x999999);
  93.             g.drawLine(0, 0, width, 0);
  94.             g.drawLine(0, height -1, width , height - 1);
  95.         }
  96.     }
  97.     public void setSelectionFont(GTantra font)
  98.     {
  99.         control.setSelectionFont(font);
  100.     }
  101.     
  102. }