blob: af84fefd9cbc5bc6952b16a3a441735bd896925f [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.infobar;
/**
* An infobar that presents the user with several buttons.
*
* TODO(newt): merge this into InfoBar.java.
*/
public class ConfirmInfoBar extends InfoBar {
/** Text shown on the primary button, e.g. "OK". */
private final String mPrimaryButtonText;
/** Text shown on the secondary button, e.g. "Cancel".*/
private final String mSecondaryButtonText;
/** Text shown on the extra button, e.g. "More info". */
private final String mTertiaryButtonText;
/** Notified when one of the buttons is clicked. */
private final InfoBarListeners.Confirm mConfirmListener;
public ConfirmInfoBar(long nativeInfoBar, InfoBarListeners.Confirm confirmListener,
int iconDrawableId, String message, String linkText, String primaryButtonText,
String secondaryButtonText) {
super(confirmListener, iconDrawableId, message);
mPrimaryButtonText = primaryButtonText;
mSecondaryButtonText = secondaryButtonText;
mTertiaryButtonText = linkText;
mConfirmListener = confirmListener;
setNativeInfoBar(nativeInfoBar);
}
@Override
public void createContent(InfoBarLayout layout) {
layout.setButtons(mPrimaryButtonText, mSecondaryButtonText, mTertiaryButtonText);
}
@Override
public void onButtonClicked(boolean isPrimaryButton) {
if (mConfirmListener != null) {
mConfirmListener.onConfirmInfoBarButtonClicked(this, isPrimaryButton);
}
if (mNativeInfoBarPtr != 0) {
int action = isPrimaryButton ? InfoBar.ACTION_TYPE_OK : InfoBar.ACTION_TYPE_CANCEL;
nativeOnButtonClicked(mNativeInfoBarPtr, action, "");
}
}
@Override
public void onCloseButtonClicked() {
if (mNativeInfoBarPtr != 0) {
nativeOnCloseButtonClicked(mNativeInfoBarPtr);
} else {
super.dismissJavaOnlyInfoBar();
}
}
}