1// Copyright 2013 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5package org.chromium.chrome.browser.contextmenu;
6
7import android.content.Context;
8import android.view.ContextMenu;
9
10/**
11 * A simple wrapper around a {@link ContextMenuPopulator} to handle delegating calls to another
12 * populator while allowing overriding of specific methods.
13 */
14public class ContextMenuPopulatorWrapper implements ContextMenuPopulator {
15    private final ContextMenuPopulator mPopulator;
16
17    /**
18     * Constructs an instance of a {@link ContextMenuPopulator} and delegate calls to
19     * {@code populator}.
20     * @param populator The {@link ContextMenuPopulator} to delegate calls to.
21     */
22    public ContextMenuPopulatorWrapper(ContextMenuPopulator populator) {
23        mPopulator = populator;
24    }
25
26    @Override
27    public boolean shouldShowContextMenu(ContextMenuParams params) {
28        return mPopulator.shouldShowContextMenu(params);
29    }
30
31    @Override
32    public void buildContextMenu(ContextMenu menu, Context context, ContextMenuParams params) {
33        mPopulator.buildContextMenu(menu, context, params);
34    }
35
36    @Override
37    public boolean onItemSelected(ContextMenuHelper helper, ContextMenuParams params, int itemId) {
38        return mPopulator.onItemSelected(helper, params, itemId);
39    }
40}