Android Open Source - markj Jw Drop Down






From Project

Back to project page markj.

License

The source code is released under:

GNU Lesser General Public License

If you think the Android project markj listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.markjmind.mobile.api.android.ui.view;
/*w  w  w. j av  a  2 s  . c  o  m*/
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.LinearLayout.LayoutParams;

import com.markjmind.mobile.api.android.controller.Jwc;
import com.markjmind.mobile.api.android.ui.JwGroup;
import com.markjmind.mobile.api.android.ui.JwOnGroupSelect;

public class JwDropDown extends JwBaseDropDown{
  public interface ItemInit{
    public void init(int index,String itemKey, View itemView, JwGroup jg);
  }
  
  private ViewGroup boarder;
  private ViewGroup parentsView;
  private JwGroup jg;
  private JwOnGroupSelect groupSelect;
  private View onClickView;
  private ItemInit itemInit;
  
  public JwDropDown(Context context) {
    super(context);
    parentsView = new LinearLayout(getContext());
    ((LinearLayout)parentsView).setOrientation(LinearLayout.VERTICAL);
    parentsView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
    boarder = parentsView;
    jg = new JwGroup();
    jg.setReselected(true);
    jg.setOnGroupSelect(new JwOnGroupSelect() {
      @Override
      public void selected(View v, String itemKey, int index, Object param) {
        dismiss();
      }
      @Override
      public void deselected(View v, String itemKey, int index, Object param) {
      }
    });
  }
  
  public JwDropDown(Context context,View onClickView) {
    this(context);
    this.onClickView = onClickView;
    this.onClickView.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        show();
      }
    });
  }
  
  /**
   * Item???? ?????.
   */
  private void initItems(){
    if(itemInit!=null){
      for(int i=0;i<jg.size();i++){
        String itemKey = jg.getName(i);
        View itemView = jg.getView(i);
        itemInit.init(i, itemKey, itemView, jg);
      }
    }
  }
  
  /**
   * ?? Item??? layout?? ?? ???? ????? ????. 
   * @param ItemInit
   */
  public void setItemsInit(ItemInit itemInit){
    this.itemInit = itemInit;
  }
  
  /**
   * Item?? ???? View? ????.
   * @param view Item?? ???? View
   * @param itemKey itemKey?
   * @param param select? ?????? param
   */
  public void addItem(View view,String itemKey, Object param){
    parentsView.addView(view);
    view.setClickable(true);
    jg.add(itemKey, view, param);
  }
  /**
   * Item?? ???? View? ????.<br>
   * select? ?????? param??? null??? ????.
   * @param view Item?? ???? View
   * @param itemKey itemKey?
   */
  public void addItem(View view,String itemKey){
    this.addItem(view, itemKey, null);
  }
  
  /**
   * Item?? ???? View? ????.
   * @param R_layout_id Item?? ???? layout id
   * @param itemKey itemKey?
   * @param param select? ?????? param
   */
  public void addItem(int R_layout_id, String itemKey, Object param){
    View view = Jwc.getViewInfalter(R_layout_id, getContext());
    this.addItem(view, itemKey, param);
  }
  
  /**
   * Item?? ???? View? ????.<br>
   * select? ?????? param??? null??? ????.
   * @param R_layout_id Item?? ???? layout id
   * @param itemKey itemKey?
   */
  public void addItem(int R_layout_id, String itemKey) {
    this.addItem(R_layout_id, itemKey, null);
  }
  
  /**
   * Item?? ???? View? ????.<br>
   * select? ?????? itemKey? null??? ????.<br>
   * select? ?????? param??? null??? ????.
   * @param R_layout_id Item?? ???? layout id
   */
  public void addItem(int R_layout_id) {
    this.addItem(R_layout_id, null, null);
  }
  
  /**
   * Item??? ?????.
   * @param itemKey ???? Item itemKey
   */
  public void select(String itemKey){
    jg.select(itemKey);
  }
  
  /**
   * Item??? ?????.
   * @param index ???? Item index
   */
  public void select(int index){
    jg.select(index);
  }
  /**
   * ????? ???? Item?? ??? select/deselect? ???? ????? 
   * @param groupSelect Item?? ?? select listener
   */
  public void setOnSelected(JwOnGroupSelect groupSelect){
    this.groupSelect = groupSelect;
    jg.setOnGroupSelect(new JwOnGroupSelect() {
      @Override
      public void selected(View v, String itemKey, int index, Object param) {
        if(JwDropDown.this.groupSelect!=null){
          JwDropDown.this.groupSelect.selected(v, itemKey, index, param);
        }
        dismiss();
      }
      @Override
      public void deselected(View v, String itemKey, int index, Object param) {
        if(JwDropDown.this.groupSelect!=null){
          JwDropDown.this.groupSelect.deselected(v, itemKey, index, param);
        }
      }
    });
  }
  
  /**
   * item??? size? ????.
   */
  public int getItemSize(){
    return jg.size(); 
  }
  /**
   * BoarderLayout??? ????.
   * @param R_layout_id boarder layout ID
   * @param add_view_group_id boarder ???? Item? ??? ViewGourp ID 
   */
  public void setBoarderLayout(ViewGroup boarder, int add_view_group_id){
    this.boarder = boarder;
    this.boarder.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
    this.parentsView = (ViewGroup)this.boarder.findViewById(add_view_group_id);
  }
  
  /**
   * BoarderLayout??? ????.
   * @param R_layout_id boarder layout ID
   * @param add_view_group_id boarder ???? Item? ??? ViewGourp ID 
   */
  public void setBoarderLayout(int R_layout_id, int add_view_group_id){
    ViewGroup mainView = (ViewGroup)Jwc.getViewInfalter(R_layout_id, getContext());
    setBoarderLayout(mainView,add_view_group_id);
  }
    
  /**
   * ????? Boarder??? Layout??? ????.
   * @return Boarder ViewGroup
   */
  public ViewGroup getBoarderLayout(){
    return boarder;
  }
  
  /**
   * dropdown popup??? ?????.
   */
  public void show(){
    setMainContentView(boarder);
    initItems();
    super.show(onClickView);
  }
  
  /**
   * onClickView? ????
   * dropdown popup??? ?????.
   * @param onClickView
   */
  public void show(View onClickView){
    setMainContentView(boarder);
    initItems();
    super.show(onClickView);
  }
  
  /**
   * ?????? Item? ???????? ??? ??<br>
   * isReselected??? defalut? false????
   * @param isReselected
   */
  public void setReselected(boolean isReselected){
    jg.setReselected(isReselected);
  }
}




Java Source Code List

com.markjmind.mobile.api.android.controller.JwAsyncTask.java
com.markjmind.mobile.api.android.controller.JwMapperException.java
com.markjmind.mobile.api.android.controller.JwMemberMapper.java
com.markjmind.mobile.api.android.controller.JwStringID.java
com.markjmind.mobile.api.android.controller.JwViewController.java
com.markjmind.mobile.api.android.controller.JwViewerCache.java
com.markjmind.mobile.api.android.controller.JwViewer.java
com.markjmind.mobile.api.android.controller.Jwc.java
com.markjmind.mobile.api.android.controller.OnClickListenerReceiver.java
com.markjmind.mobile.api.android.controller.ViewerXmlMapper.java
com.markjmind.mobile.api.android.exception.JwErrorCode.java
com.markjmind.mobile.api.android.exception.JwException.java
com.markjmind.mobile.api.android.json.JSONMsgString.java
com.markjmind.mobile.api.android.json.JwJOSNTreeArray.java
com.markjmind.mobile.api.android.json.JwJSONReader.java
com.markjmind.mobile.api.android.ui.JwAnimation.java
com.markjmind.mobile.api.android.ui.JwGroup.java
com.markjmind.mobile.api.android.ui.JwMenu.java
com.markjmind.mobile.api.android.ui.JwOnGroupSelect.java
com.markjmind.mobile.api.android.ui.JwTabGroup.java
com.markjmind.mobile.api.android.ui.JwTouchGroupListener.java
com.markjmind.mobile.api.android.ui.JwTouchGroup.java
com.markjmind.mobile.api.android.ui.JwTouchMotionGroupLisener.java
com.markjmind.mobile.api.android.ui.JwTouchMotionGroup.java
com.markjmind.mobile.api.android.ui.drawgraph.GraphBoard.java
com.markjmind.mobile.api.android.ui.drawgraph.GraphSkin.java
com.markjmind.mobile.api.android.ui.drawgraph.HBackLineSkin.java
com.markjmind.mobile.api.android.ui.drawgraph.LineGraphSkin.java
com.markjmind.mobile.api.android.ui.drawgraph.PieGraph.java
com.markjmind.mobile.api.android.ui.drawgraph.RectGraphSkin.java
com.markjmind.mobile.api.android.ui.drawgraph.SimpleStyle.java
com.markjmind.mobile.api.android.ui.drawgraph.TextArraySkin.java
com.markjmind.mobile.api.android.ui.drawgraph.VBackLineSkin.java
com.markjmind.mobile.api.android.ui.graph.Arc.java
com.markjmind.mobile.api.android.ui.graph.BarElement.java
com.markjmind.mobile.api.android.ui.graph.BarLayout.java
com.markjmind.mobile.api.android.ui.graph.Bar.java
com.markjmind.mobile.api.android.ui.graph.IPieSkin.java
com.markjmind.mobile.api.android.ui.graph.LineLayout.java
com.markjmind.mobile.api.android.ui.graph.MeasureLayout.java
com.markjmind.mobile.api.android.ui.graph.PieArcRoundSkin.java
com.markjmind.mobile.api.android.ui.graph.PieLayout.java
com.markjmind.mobile.api.android.ui.graph.PiePercentSkin.java
com.markjmind.mobile.api.android.ui.view.JwBaseDropDown.java
com.markjmind.mobile.api.android.ui.view.JwDropDown.java
com.markjmind.mobile.api.android.ui.view.JwSlidingLayout.java
com.markjmind.mobile.api.android.ui.view.JwWheelView.java
com.markjmind.mobile.api.android.ui.view.StickerListener.java
com.markjmind.mobile.api.android.ui.view.StickerView.java
com.markjmind.mobile.api.android.ui.view.textview.JwTextViewAutoScale.java
com.markjmind.mobile.api.android.ui.view.textview.JwTextViewFonts.java
com.markjmind.mobile.api.android.ui.view.textview.JwTextViewWrapScale.java
com.markjmind.mobile.api.android.ui.wrapper.JwAlertDialog.java
com.markjmind.mobile.api.android.ui.wrapper.JwToast.java
com.markjmind.mobile.api.android.util.JwFile.java
com.markjmind.mobile.api.android.util.JwPreferenceList.java
com.markjmind.mobile.api.android.util.JwPreference.java
com.markjmind.mobile.api.android.util.JwSound.java
com.markjmind.mobile.api.android.util.JwTextUtils.java
com.markjmind.mobile.api.android.util.PhoneInfo.java
com.markjmind.mobile.api.android.util.WebConnection.java
com.markjmind.mobile.api.android.xml.JwDomHandler.java
com.markjmind.mobile.api.android.xml.JwDomLoader.java
com.markjmind.mobile.api.android.xml.JwEditElementHandler.java
com.markjmind.mobile.api.android.xml.JwXmlLoader.java
com.markjmind.mobile.api.android.xml.JwXmlResoure.java
com.markjmind.mobile.api.hub.ArrayJDhub.java
com.markjmind.mobile.api.hub.DBhub.java
com.markjmind.mobile.api.hub.JDhub.java
com.markjmind.mobile.api.hub.Loader.java
com.markjmind.mobile.api.hub.StoreList.java
com.markjmind.mobile.api.hub.Store.java