Upstream version 5.34.92.0
[platform/framework/web/crosswalk.git] / src / chrome / android / java / src / org / chromium / chrome / browser / toolbar / ToolbarModel.java
1 // Copyright 2014 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
5 package org.chromium.chrome.browser.toolbar;
6
7 import org.chromium.base.CalledByNative;
8 import org.chromium.content_public.browser.WebContents;
9
10 /**
11  * Provides a way of accessing toolbar data and state.
12  */
13 public class ToolbarModel {
14
15     /**
16      * Delegate for providing additional information to the model.
17      */
18     public interface ToolbarModelDelegate {
19         /**
20          * @return The currently active WebContents being used by the Toolbar.
21          */
22         @CalledByNative("ToolbarModelDelegate")
23         WebContents getActiveWebContents();
24     }
25
26     private long mNativeToolbarModelAndroid;
27
28     /**
29      * Initialize the native counterpart of this model.
30      * @param delegate The delegate that will be used by the model.
31      */
32     public void initialize(ToolbarModelDelegate delegate) {
33         mNativeToolbarModelAndroid = nativeInit(delegate);
34     }
35
36     /**
37      * Destroys the native ToolbarModel.
38      */
39     public void destroy() {
40         if (mNativeToolbarModelAndroid == 0) return;
41         nativeDestroy(mNativeToolbarModelAndroid);
42         mNativeToolbarModelAndroid = 0;
43     }
44
45     /** @return The search terms extracted from the current url if query extraction is enabled. */
46     public String getSearchTerms() {
47         if (mNativeToolbarModelAndroid == 0) return null;
48         return nativeGetSearchTerms(mNativeToolbarModelAndroid);
49     }
50
51     /** @return The parameter in the url that triggers query extraction. */
52     public String getQueryExtractionParam() {
53         if (mNativeToolbarModelAndroid == 0) return null;
54         return nativeGetQueryExtractionParam(mNativeToolbarModelAndroid);
55     }
56
57     /** @return The chip text from the search URL. */
58     public String getCorpusChipText() {
59         if (mNativeToolbarModelAndroid == 0) return null;
60         return nativeGetCorpusChipText(mNativeToolbarModelAndroid);
61     }
62
63     private native long nativeInit(ToolbarModelDelegate delegate);
64     private native void nativeDestroy(long nativeToolbarModelAndroid);
65     private native String nativeGetSearchTerms(long nativeToolbarModelAndroid);
66     private native String nativeGetQueryExtractionParam(long nativeToolbarModelAndroid);
67     private native String nativeGetCorpusChipText(long nativeToolbarModelAndroid);
68 }