Advertisement
Guest User

DisconDialog.java

a guest
Feb 22nd, 2012
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 9.33 KB | None | 0 0
  1.  
  2. import android.app.AlertDialog;
  3. import android.content.Context;
  4. import android.content.DialogInterface;
  5. import android.graphics.drawable.Drawable;
  6. import android.view.KeyEvent;
  7.  
  8. public class DisconDialog
  9. {
  10.     protected int mTitleId;
  11.     protected CharSequence mTitle;
  12.     protected CharSequence mMessage;
  13.     protected int mMessageID;
  14.     protected Drawable mIcon;
  15.     protected int mIconID;
  16.     protected int mPositiveButtonId;
  17.     protected CharSequence mPositiveButtonText;
  18.     protected OnClickListener mPositiveButtonListener;
  19.     protected int mNegativeButtonId;
  20.     protected CharSequence mNegativeButtonText;
  21.     protected OnClickListener mNegativeButtonListener;
  22.     protected int mNeutralButtonId;
  23.     protected CharSequence mNeutralButtonText;
  24.     protected OnClickListener mNeutralButtonListener;
  25.     protected boolean mForceInverseBackground;
  26.     protected boolean mCancelable;
  27.     protected OnCancelListener mOnCancelListener;
  28.     protected OnKeyListener mOnKeyListener;
  29.     protected boolean mShow;
  30.     protected Context mContext;
  31.     protected AlertDialog mDialog;
  32.    
  33.     public interface OnClickListener
  34.     {
  35.         public abstract void onClick(Context ctx, DialogInterface dialog, int which);
  36.     }
  37.    
  38.     public interface OnCancelListener
  39.     {
  40.         public abstract void onCancel(Context ctx, DialogInterface dialog);
  41.     }
  42.    
  43.     public interface OnKeyListener
  44.     {
  45.         public abstract boolean onKey(Context ctx, DialogInterface dialog, int keyCode, KeyEvent event);
  46.     }
  47.    
  48.     public DisconDialog()
  49.     {
  50.         this(null);
  51.     }
  52.    
  53.     public DisconDialog(Context ctx)
  54.     {
  55.         mContext = ctx;
  56.         mTitleId = -1;
  57.         mMessageID = -1;
  58.         mIconID = -1;
  59.         mPositiveButtonId = -1;
  60.         mNegativeButtonId = -1;
  61.         mNeutralButtonId = -1;
  62.         mForceInverseBackground = false;
  63.         mCancelable = false;
  64.         mShow = false;
  65.     }
  66.  
  67.     public DisconDialog setCancelable(boolean bCancel)
  68.     {
  69.         mCancelable = bCancel;
  70.         if(mDialog != null)
  71.         {
  72.             mDialog.setCancelable(bCancel);
  73.         }
  74.         return this;
  75.     }
  76.    
  77.     public DisconDialog setIcon(int pIconID)
  78.     {
  79.         mIconID = pIconID;
  80.         if(mDialog != null)
  81.         {
  82.             mDialog.setIcon(pIconID);
  83.         }
  84.         return this;
  85.     }
  86.  
  87.     public DisconDialog setIcon(Drawable pIcon)
  88.     {
  89.         mIcon = pIcon;
  90.         if(mDialog != null)
  91.         {
  92.             mDialog.setIcon(pIcon);
  93.         }
  94.         return this;
  95.     }
  96.    
  97.     public DisconDialog setInverseBackgroundForced(boolean bForced)
  98.     {
  99.         mForceInverseBackground = bForced;
  100.         if(mDialog != null)
  101.         {
  102.             mDialog.setInverseBackgroundForced(bForced);
  103.         }
  104.         return this;
  105.     }
  106.    
  107.     public DisconDialog setMessage(int msg)
  108.     {
  109.         mMessage = null;
  110.         mMessageID = msg;
  111.         if(mDialog != null && mContext != null)
  112.         {
  113.             mDialog.setMessage(mContext.getText(msg));
  114.         }
  115.         return this;
  116.     }
  117.  
  118.     public DisconDialog setMessage(CharSequence msg)
  119.     {
  120.         mMessage = msg;
  121.         mMessageID = -1;
  122.         if(mDialog != null)
  123.         {
  124.             mDialog.setMessage(msg);
  125.         }
  126.         return this;
  127.     }
  128.    
  129.     public DisconDialog setPositiveButton(int msg, final OnClickListener listener)
  130.     {
  131.         mPositiveButtonId = msg;
  132.         mPositiveButtonText = null;
  133.         mPositiveButtonListener = listener;
  134.         if(mDialog != null && mContext != null)
  135.         {
  136.             mDialog.setButton(DialogInterface.BUTTON_POSITIVE, mContext.getText(msg),
  137.                     curryClickListener(mContext, listener));
  138.         }
  139.         return this;
  140.     }
  141.  
  142.     public DisconDialog setPositiveButton(CharSequence msg, final OnClickListener listener)
  143.     {
  144.         mPositiveButtonId = -1;
  145.         mPositiveButtonText = msg;
  146.         mPositiveButtonListener = listener;
  147.         if(mDialog != null && mContext != null)
  148.         {
  149.             mDialog.setButton(DialogInterface.BUTTON_POSITIVE, msg,
  150.                     curryClickListener(mContext, listener));
  151.         }
  152.         return this;
  153.     }
  154.  
  155.     public DisconDialog setNegativeButton(int msg, final OnClickListener listener)
  156.     {
  157.         mNegativeButtonId = msg;
  158.         mNegativeButtonText = null;
  159.         mNegativeButtonListener = listener;
  160.         if(mDialog != null && mContext != null)
  161.         {
  162.             mDialog.setButton(DialogInterface.BUTTON_NEGATIVE, mContext.getText(msg),
  163.                     curryClickListener(mContext, listener));
  164.         }
  165.         return this;
  166.     }
  167.  
  168.     public DisconDialog setNegativeButton(CharSequence msg, final OnClickListener listener)
  169.     {
  170.         mNegativeButtonId = -1;
  171.         mNegativeButtonText = msg;
  172.         mNegativeButtonListener = listener;
  173.         if(mDialog != null && mContext != null)
  174.         {
  175.             mDialog.setButton(DialogInterface.BUTTON_NEGATIVE, msg,
  176.                     curryClickListener(mContext, listener));
  177.         }
  178.         return this;
  179.     }
  180.  
  181.     public DisconDialog setNeutralButton(int msg, final OnClickListener listener)
  182.     {
  183.         mNeutralButtonId = msg;
  184.         mNeutralButtonText = null;
  185.         mNeutralButtonListener = listener;
  186.         if(mDialog != null && mContext != null)
  187.         {
  188.             mDialog.setButton(DialogInterface.BUTTON_NEUTRAL, mContext.getText(msg),
  189.                     curryClickListener(mContext, listener));
  190.         }
  191.         return this;
  192.     }
  193.  
  194.     public DisconDialog setNeutralButton(CharSequence msg, final OnClickListener listener)
  195.     {
  196.         mNeutralButtonId = -1;
  197.         mNeutralButtonText = msg;
  198.         mNeutralButtonListener = listener;
  199.         if(mDialog != null && mContext != null)
  200.         {
  201.             mDialog.setButton(DialogInterface.BUTTON_NEUTRAL, msg,
  202.                     curryClickListener(mContext, listener));
  203.         }
  204.         return this;
  205.     }
  206.    
  207.     public DisconDialog setOnCancelListener(OnCancelListener listener)
  208.     {
  209.         mOnCancelListener = listener;
  210.         if(mDialog != null && mContext != null)
  211.         {
  212.             mDialog.setOnCancelListener(curryCancelListener(mContext, listener));
  213.         }
  214.         return this;
  215.     }
  216.  
  217.     public DisconDialog setOnKeyListener(OnKeyListener listener)
  218.     {
  219.         mOnKeyListener = listener;
  220.         if(mDialog != null && mContext != null)
  221.         {
  222.             mDialog.setOnKeyListener(curryKeyListener(mContext, listener));
  223.         }
  224.         return this;
  225.     }
  226.    
  227.     public DisconDialog setTitle(int title)
  228.     {
  229.         mTitleId = title;
  230.         mTitle = null;
  231.         if(mDialog != null)
  232.         {
  233.             mDialog.setTitle(title);
  234.         }
  235.         return this;
  236.     }
  237.  
  238.     public DisconDialog setTitle(CharSequence title)
  239.     {
  240.         mTitleId = -1;
  241.         mTitle = title;
  242.         if(mDialog != null)
  243.         {
  244.             mDialog.setTitle(title);
  245.         }
  246.         return this;
  247.     }
  248.    
  249.     public AlertDialog show()
  250.     {
  251.         if(mShow) return mDialog;
  252.         mShow = true;
  253.         if(mContext == null) return null;
  254.         mDialog = createDialog();
  255.         mDialog.show();
  256.         return mDialog;
  257.     }
  258.  
  259.     public void hide()
  260.     {
  261.         if(mDialog != null)
  262.         {
  263.             mDialog.hide();
  264.             mDialog = null;
  265.             mShow = false;
  266.         }
  267.     }
  268.    
  269.     public void disconnect()
  270.     {
  271.         if(mDialog != null)
  272.         {
  273.             mDialog.hide();
  274.             mDialog = null;
  275.         }
  276.         mContext = null;
  277.     }
  278.  
  279.     public void connect(Context ctx)
  280.     {
  281.         mContext = ctx;
  282.         if(mShow)
  283.         {
  284.             mDialog = createDialog();
  285.             mDialog.show();
  286.         }
  287.     }
  288.  
  289.     protected DialogInterface.OnClickListener curryClickListener(final Context ctx, final OnClickListener handler)
  290.     {
  291.         return new DialogInterface.OnClickListener()
  292.         {
  293.             public void onClick(DialogInterface dialog, int which)
  294.             {
  295.                 handler.onClick(ctx, dialog, which);
  296.             }
  297.         };
  298.     }
  299.  
  300.     protected DialogInterface.OnCancelListener curryCancelListener(final Context ctx, final OnCancelListener handler)
  301.     {
  302.         return new DialogInterface.OnCancelListener()
  303.         {
  304.             public void onCancel(DialogInterface dialog)
  305.             {
  306.                 handler.onCancel(ctx, dialog);
  307.             }
  308.         };
  309.     }
  310.  
  311.     protected DialogInterface.OnKeyListener curryKeyListener(final Context ctx, final OnKeyListener handler)
  312.     {
  313.         return new DialogInterface.OnKeyListener()
  314.         {
  315.             public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event)
  316.             {
  317.                 return handler.onKey(ctx, dialog, keyCode, event);
  318.             }
  319.         };
  320.     }
  321.  
  322.     protected AlertDialog createDialog()
  323.     {
  324.         AlertDialog dialog = new AlertDialog.Builder(mContext).create();
  325.         applyDialog(dialog);
  326.         return dialog;
  327.     }
  328.    
  329.     protected void applyDialog(AlertDialog dialog)
  330.     {
  331.         if(mTitleId >= 0)
  332.         {
  333.             dialog.setTitle(mContext.getText(mTitleId));
  334.         }
  335.         else if(mTitle != null)
  336.         {
  337.             dialog.setTitle(mTitle);
  338.         }
  339.         if(mIcon != null)
  340.         {
  341.             dialog.setIcon(mIcon);
  342.         }
  343.         if(mIconID >= 0)
  344.         {
  345.             dialog.setIcon(mIconID);
  346.         }
  347.         if(mMessageID >= 0)
  348.         {
  349.             dialog.setMessage(mContext.getText(mMessageID));
  350.         }
  351.         else if(mMessage != null)
  352.         {
  353.             dialog.setMessage(mMessage);
  354.         }
  355.         if(mPositiveButtonId >= 0)
  356.         {
  357.             dialog.setButton(DialogInterface.BUTTON_POSITIVE, mContext.getText(mPositiveButtonId),
  358.                     curryClickListener(mContext, mPositiveButtonListener));
  359.         }
  360.         else if(mPositiveButtonText != null)
  361.         {
  362.             dialog.setButton(DialogInterface.BUTTON_POSITIVE, mPositiveButtonText,
  363.                     curryClickListener(mContext, mPositiveButtonListener));
  364.         }
  365.         if(mNegativeButtonId >= 0)
  366.         {
  367.             dialog.setButton(DialogInterface.BUTTON_NEGATIVE, mContext.getText(mNegativeButtonId),
  368.                     curryClickListener(mContext, mNegativeButtonListener));
  369.         }
  370.         else if(mNegativeButtonText != null)
  371.         {
  372.             dialog.setButton(DialogInterface.BUTTON_NEGATIVE, mNegativeButtonText,
  373.                     curryClickListener(mContext, mNegativeButtonListener));
  374.         }
  375.         if(mNeutralButtonId >= 0)
  376.         {
  377.             dialog.setButton(DialogInterface.BUTTON_NEUTRAL, mContext.getText(mNeutralButtonId),
  378.                     curryClickListener(mContext, mNeutralButtonListener));
  379.         }
  380.         else if(mNeutralButtonText != null)
  381.         {
  382.             dialog.setButton(DialogInterface.BUTTON_NEUTRAL, mNeutralButtonText,
  383.                     curryClickListener(mContext, mNeutralButtonListener));
  384.         }
  385.         if(mForceInverseBackground)
  386.         {
  387.             dialog.setInverseBackgroundForced(true);
  388.         }
  389.         dialog.setCancelable(mCancelable);
  390.         if(mOnCancelListener != null)
  391.         {
  392.             dialog.setOnCancelListener(curryCancelListener(mContext, mOnCancelListener));
  393.         }
  394.         if(mOnKeyListener != null)
  395.         {
  396.             dialog.setOnKeyListener(curryKeyListener(mContext, mOnKeyListener));
  397.         }
  398.     }
  399. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement