Advertisement
Guest User

Untitled

a guest
Nov 4th, 2012
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.23 KB | None | 0 0
  1.  
  2. import java.util.ArrayList;
  3. import java.util.Iterator;
  4.  
  5. import android.R;
  6. import android.widget.Adapter;
  7. import android.widget.AdapterView;
  8. import android.widget.CheckBox;
  9. import android.widget.LinearLayout;
  10. import android.widget.ListView;
  11. import android.widget.RadioButton;
  12. import android.widget.RadioGroup;
  13. import android.widget.TextView;
  14. import android.widget.LinearLayout.LayoutParams;
  15. import android.graphics.Color;
  16. import android.graphics.Typeface;
  17. import android.graphics.drawable.ColorDrawable;
  18. import android.graphics.drawable.GradientDrawable;
  19. import android.graphics.drawable.GradientDrawable.Orientation;
  20. import android.text.method.KeyListener;
  21. import android.view.KeyEvent;
  22. import android.view.MotionEvent;
  23. import android.view.View;
  24. import android.view.View.OnKeyListener;
  25.  
  26. public class List extends Screen implements Choice {
  27.  
  28.     public Command SELECT_COMMAND = null;
  29.  
  30.     String title;
  31.     int listType;
  32.     int fitPolicy;
  33.     boolean bUpdate = true;
  34.     boolean bUpdateSelection = true;
  35.     int iSelectedIndex = -1;
  36.  
  37.     ArrayList arrayListItems = new ArrayList();
  38.  
  39.     TextView textView;
  40.     ListView listView;
  41.  
  42.     public List(String title, int listType) {
  43.         this.title = title;
  44.         this.listType = listType;
  45.         UpdateView();
  46.  
  47.     }
  48.  
  49.     public List(String title, int listType, String[] stringElements,
  50.             Image[] imageElements) {
  51.         this(title, listType);
  52.         for (int i = 0; i < stringElements.length; i++) {
  53.             ListItem templistitem = new ListItem(stringElements[i],
  54.                     imageElements[i], false);
  55.             if (arrayListItems.size() == 0) {
  56.                 templistitem.bSelected = true;
  57.             }
  58.             arrayListItems.add(templistitem);
  59.         }
  60.         UpdateView();
  61.     }
  62.  
  63.     public void UpdateView() {
  64.         bUpdate = true;
  65.     }
  66.  
  67.     public void UpdateSelection() {
  68.         bUpdateSelection = true;
  69.     }
  70.  
  71.     public void UpdateDisplay() {
  72.         if (bUpdate == true) {
  73.             this.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
  74.                     LayoutParams.FILL_PARENT));
  75.             this.setOrientation(LinearLayout.VERTICAL);
  76.             this.removeAllViews();
  77.             this.setBackgroundColor(Color.WHITE);
  78.  
  79.             textView = new TextView(UIGlobal.APP_CONTEXT);
  80.             textView.setTypeface(UIGlobal.APP_TYPEFACE, Typeface.BOLD);
  81.             textView.setTextSize(Font.getDefaultFont().getSize());
  82.             textView.setTextColor(UIGlobal.TEXT_NORMAL);
  83.             textView.setText(this.title);
  84.             this.addView(textView, 0);
  85.             MIDPListAdapter midplistadapter = new MIDPListAdapter(
  86.                     arrayListItems);
  87.             listView = new ListView(UIGlobal.APP_CONTEXT);
  88.             listView.setAdapter(midplistadapter);
  89.             listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
  90.             listView.setStackFromBottom(false);
  91.             listView.setClickable(true);
  92.             listView.setDivider(new ColorDrawable(Color.LTGRAY));
  93.             listView.setDividerHeight(3);
  94.             listView.setFooterDividersEnabled(true);
  95.             listView.setHeaderDividersEnabled(true);
  96.             listView.setCacheColorHint(00000000);
  97.             listView.requestFocusFromTouch();
  98.             if (arrayListItems.size() > 0) {
  99.  
  100.                 listView.setSelection(0);
  101.                 setSelectedIndex(0, true);
  102.                 iSelectedIndex = 0;
  103.             }
  104.  
  105.             AdapterView.OnItemClickListener mItemClickedHandler = new AdapterView.OnItemClickListener() {
  106.                 public void onItemClick(AdapterView parent, View v,
  107.                         int position, long id) {
  108.                     iSelectedIndex = position;
  109.                     selectItem(iSelectedIndex, true);
  110.                 }
  111.             };
  112.             listView.setOnItemClickListener(mItemClickedHandler);
  113.             this.addView(listView, 1);
  114.             bUpdate = false;
  115.         }
  116.     }
  117.  
  118.     public View getView() {
  119.         if (bUpdate == true) {
  120.             UpdateDisplay();
  121.         }
  122.  
  123.         if (bUpdateSelection == true) {
  124.         }
  125.  
  126.         return this;
  127.     }
  128.  
  129.     public void RefreshList() {
  130.  
  131.         System.out.println(" RefreshList iSelectedIndex " + iSelectedIndex);
  132.         for (int i = 0; i < arrayListItems.size(); i++) {
  133.             ListItem templistitem = (ListItem) arrayListItems.get(i);
  134.             if (i != iSelectedIndex) {
  135.                 if (templistitem.bSelected == true) {
  136.                     templistitem.bSelected = false;
  137.                     arrayListItems.set(i, templistitem);
  138.                 }
  139.             } else {
  140.                 if (templistitem.bSelected == false) {
  141.                     templistitem.bSelected = true;
  142.                     arrayListItems.set(i, templistitem);
  143.                 }
  144.             }
  145.         }
  146.     }
  147.  
  148.     public int append(String stringPart, Image imagePart) {
  149.         ListItem templistitem = new ListItem(stringPart, imagePart, false);
  150.         if (arrayListItems.size() == 0) {
  151.             templistitem.bSelected = true;
  152.         }
  153.         arrayListItems.add(templistitem);
  154.         UpdateView();
  155.         return (arrayListItems.size() - 1);
  156.     }
  157.  
  158.     public void delete(int elementNum) {
  159.         arrayListItems.remove(elementNum);
  160.         UpdateView();
  161.     }
  162.  
  163.     public void deleteAll() {
  164.         arrayListItems.clear();
  165.         UpdateView();
  166.     }
  167.  
  168.     public void addCommand(Command cmd) {
  169.         super.addCommand(cmd);
  170.         if (cmd.getLabel().toUpperCase().equals("NEXT")
  171.                 || cmd.getLabel().toUpperCase().equals("SELECT")) // First
  172.                                                                     // command
  173.                                                                     // is linked
  174.                                                                     // to Select
  175.                                                                     // Command
  176.         {
  177.             SELECT_COMMAND = cmd;
  178.         }
  179.     }
  180.  
  181.     public Image getImage(int elementNum) {
  182.         ListItem templistitem = (ListItem) arrayListItems.get(elementNum);
  183.         return templistitem.imagePart;
  184.     }
  185.  
  186.     public int getSelectedFlags(boolean[] selectedArray_return) {
  187.         RefreshList();
  188.         int intSelectedCount = 0;
  189.         int i = 0;
  190.         Iterator itr = arrayListItems.iterator();
  191.         while (itr.hasNext()) {
  192.             ListItem templistitem = (ListItem) itr.next();
  193.             selectedArray_return[i] = templistitem.bSelected;
  194.             if (templistitem.bSelected) {
  195.                 intSelectedCount++;
  196.             }
  197.         }
  198.         return intSelectedCount;
  199.     }
  200.  
  201.     public int getSelectedIndex() {
  202.         RefreshList();
  203.         return iSelectedIndex;
  204.     }
  205.  
  206.     public String getString(int elementNum) {
  207.         ListItem templistitem = (ListItem) arrayListItems.get(elementNum);
  208.         return templistitem.stringPart;
  209.     }
  210.  
  211.     public void insert(int elementNum, String stringPart, Image imagePart) {
  212.         ListItem templistitem = new ListItem(stringPart, imagePart, false);
  213.         arrayListItems.add(elementNum, templistitem);
  214.         UpdateView();
  215.     }
  216.  
  217.     public boolean isSelected(int elementNum) {
  218.         RefreshList();
  219.         ListItem templistitem = (ListItem) arrayListItems.get(elementNum);
  220.         return templistitem.bSelected;
  221.     }
  222.  
  223.     public void set(int elementNum, String stringPart, Image imagePart) {
  224.         ListItem templistitem = new ListItem(stringPart, imagePart, false);
  225.         arrayListItems.set(elementNum, templistitem);
  226.         UpdateView();
  227.     }
  228.  
  229.     public void setSelectCommand(Command command) {
  230.         SELECT_COMMAND = command;
  231.     }
  232.  
  233.     public void setSelectedFlags(boolean[] selectedArray) {
  234.         for (int i = 0; i < arrayListItems.size(); i++) {
  235.             ListItem templistitem = (ListItem) arrayListItems.get(i);
  236.             if (templistitem.bSelected != selectedArray[i]) {
  237.                 templistitem.bSelected = selectedArray[i];
  238.                 arrayListItems.set(i, templistitem);
  239.             }
  240.         }
  241.     }
  242.  
  243.     public void setTitle(String s) {
  244.         this.title = s;
  245.     }
  246.  
  247.     public int size() {
  248.         return arrayListItems.size();
  249.     }
  250.  
  251.     public void selectItem(int elementNum, boolean selected) {
  252.         setSelectedIndex(elementNum, selected);
  253.         if ((this.commandListener != null) && (SELECT_COMMAND != null)) {
  254.             this.commandListener.commandAction(SELECT_COMMAND, this);
  255.         } else if ((this.commandListener != null) && (aListCommands.size() > 1)) {
  256.             this.commandListener.commandAction((Command) aListCommands.get(0),
  257.                     this);
  258.         }
  259.     }
  260.  
  261.     @Override
  262.     public void setSelectedIndex(int elementNum, boolean selected) {
  263.  
  264.         for (int i = 0; i < arrayListItems.size(); i++) {
  265.             ListItem templistitem = (ListItem) arrayListItems.get(i);
  266.             if (elementNum == i) {
  267.                 templistitem.bSelected = selected;
  268.                 arrayListItems.set(i, templistitem);
  269.             } else {
  270.                 if (selected == true) {
  271.                     if (templistitem.bSelected == true) // Make all other
  272.                                                         // selection false
  273.                     {
  274.                         templistitem.bSelected = false;
  275.                         arrayListItems.set(i, templistitem);
  276.                     }
  277.                 }
  278.             }
  279.         }
  280.         iSelectedIndex = elementNum;
  281.     }
  282.  
  283.     @Override
  284.     public int getFitPolicy() {
  285.         return fitPolicy;
  286.     }
  287.  
  288.     @Override
  289.     public void setFitPolicy(int fitPolicy) {
  290.         this.fitPolicy = fitPolicy;
  291.     }
  292.  
  293.     public void SelectNextItem() {
  294.         int iCurrentlySelectedIndex = iSelectedIndex;
  295.         if (iCurrentlySelectedIndex == (arrayListItems.size() - 1)) {
  296.             setSelectedIndex(0, true);
  297.         } else {
  298.             setSelectedIndex(iCurrentlySelectedIndex + 1, true);
  299.         }
  300.     }
  301.  
  302.     public void SelectPreviousItem() {
  303.         int iCurrentlySelectedIndex = iSelectedIndex;
  304.         if (iCurrentlySelectedIndex == 0) {
  305.             setSelectedIndex(arrayListItems.size() - 1, true);
  306.         } else {
  307.             setSelectedIndex(iCurrentlySelectedIndex - 1, true);
  308.         }
  309.     }
  310.  
  311.     @Override
  312.     public Font getFont(int elementNum) {
  313.         return null;
  314.     }
  315.  
  316.     @Override
  317.     public void setFont(int elementNum, Font font) {
  318.  
  319.     }
  320.  
  321. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement