@Override
  public void openUtilityPanel(final LinearLayout accessoryViewList) {
    mButton = (SwapButton) accessoryViewList.findViewById(R.id.applyEffect);
    mButton.setText(mContext.getString(R.string.vignette_main));

    if (useCompact(mContext)) {
      final PopupMenu popupMenu = new PopupMenu(mImageShow.getActivity(), mButton);

      popupMenu.getMenuInflater().inflate(R.menu.filtershow_menu_vignette, popupMenu.getMenu());

      popupMenu.setOnMenuItemClickListener(
          new PopupMenu.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
              selectMenuItem(item);
              return true;
            }
          });
      mButton.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
              popupMenu.show();
              ((FilterShowActivity) mContext).onShowMenu(popupMenu);
            }
          });
      mButton.setListener(this);

      FilterVignetteRepresentation csrep = getVignetteRep();
      String menuString = mContext.getString(mMenuStrings[0]);
      switchToMode(csrep, FilterVignetteRepresentation.MODE_VIGNETTE, menuString);
    } else {
      mButton.setText(mContext.getString(R.string.vignette_main));
    }
  }
 @Override
 public void detach() {
   if (mButton == null) {
     return;
   }
   mButton.setListener(null);
   mButton.setOnClickListener(null);
 }
 @Override
 public void swapRight(MenuItem item) {
   super.swapRight(item);
   mButton.setTranslationX(0);
   mButton.animate().translationX(-mButton.getWidth()).setDuration(SwapButton.ANIM_DURATION);
   Runnable updateButton =
       new Runnable() {
         @Override
         public void run() {
           mButton.animate().cancel();
           mButton.setTranslationX(0);
         }
       };
   mHandler.postDelayed(updateButton, SwapButton.ANIM_DURATION);
   selectMenuItem(item);
 }
  protected void switchToMode(FilterVignetteRepresentation csrep, int mode, String title) {
    if (csrep == null) {
      return;
    }
    csrep.setParameterMode(mode);
    mCurrentlyEditing = title;
    mButton.setText(mCurrentlyEditing);
    {
      Parameter param = getParameterToEdit(csrep);

      control(param, mEditControl);
    }
    updateSeekBar(csrep);
    mView.invalidate();
  }