blob: c017fe9df9dbae54ff047853d544102a9a3f9648 [file] [log] [blame]
// Copyright 2018 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.toolbar;
import org.chromium.ui.modelutil.PropertyKey;
import org.chromium.ui.modelutil.PropertyModel;
import org.chromium.ui.modelutil.PropertyModelChangeProcessor;
/**
* This class is responsible for pushing updates to the Android view of the tab switcher. These
* updates are pulled from the {@link TabSwitcherModel} when a notification of an update is
* received.
*/
public class TabSwitcherButtonViewBinder
implements PropertyModelChangeProcessor
.ViewBinder<PropertyModel, TabSwitcherButtonView, PropertyKey> {
/**
* Build a binder that handles interaction between the model and the views that make up the
* tab switcher.
*/
public TabSwitcherButtonViewBinder() {}
@Override
public final void bind(
PropertyModel model, TabSwitcherButtonView view, PropertyKey propertyKey) {
if (TabSwitcherButtonProperties.NUMBER_OF_TABS == propertyKey) {
view.updateTabCountVisuals(model.get(TabSwitcherButtonProperties.NUMBER_OF_TABS));
} else if (TabSwitcherButtonProperties.ON_CLICK_LISTENER == propertyKey) {
view.setOnClickListener(model.get(TabSwitcherButtonProperties.ON_CLICK_LISTENER));
} else if (TabSwitcherButtonProperties.ON_LONG_CLICK_LISTENER == propertyKey) {
view.setOnLongClickListener(
model.get(TabSwitcherButtonProperties.ON_LONG_CLICK_LISTENER));
} else if (TabSwitcherButtonProperties.TINT == propertyKey) {
view.setTint(model.get(TabSwitcherButtonProperties.TINT));
} else if (TabSwitcherButtonProperties.IS_ENABLED == propertyKey) {
view.setEnabled(model.get(TabSwitcherButtonProperties.IS_ENABLED));
} else {
assert false : "Unhandled property detected in TabSwitcherViewBinder!";
}
}
}