如何在 JSNI 中使用 Resource bundle(Client Bundle)?
How to use Resource bundle(Client Bundle) in JSNI?
我正在尝试在 JSNI 中使用 css 资源的客户端包,但找不到任何有用的代码。
我想知道如何在 JSNI 中调用 css 资源以及如何在 JSNI 中准确使用客户端包。
我的普通代码:--
Resource.INSTANCE.button().ensureInjected();
Resource res = GWT.create(Resource.class);
button.setStyleName(res.button().gwtbutton());
jsni怎么写?
这里资源---->是接口扩展clientbundle。
gwtbutton ---> 是 css.
我在这篇 link https://groups.google.com/forum/#!topic/google-web-toolkit/94v4tjCZiBo 中读到我们可以通过 jsni 使用 CssResource。但我不清楚他的用法和语法。
这里没有魔法(好吧,有一点,但在幕后)。您的 Resource
接口的实现由 GWT 自动生成,因此当您调用 res.button().gwtbutton()
时,它将 return 您从 CSS 文件中引用的样式的专有名称。这个名字可能会被混淆,加上前缀等。这对你来说无关紧要 - 最后它只是一个字符串,一个样式的名称。只需将它作为 String
传递给您的 JSNI 方法:
public native void addStyle(String style) /*-{
// Add style to a DOM element
}-*/;
// Invoke like so:
addStyle(res.button().gwtbutton());
如果您想在 JSNI 代码中直接使用您的 ClientBundle:
// First, get Resource instance from a static field
var resource = @package.Resource::INSTANCE;
// Then, get the CssResource with the style
var button = resource.@package.Resource::button()();
// Finally, get the style's name
var gwtButton = button.@package.Button::gwtButton()();
用 package.Resource
代替 Resource
接口的正确限定名称(包 + class 名称)。如果需要,使用 Google Plugin for Eclipse 提供的代码完成。对由 button
方法编辑的类型 return 做同样的事情(它可能是一些扩展 CssResource
的接口)。
如果您对语法有疑问,请 dig through the documentation 或查看有关 Java 本机接口的一些教程 - 它与 JSNI 有很多相似之处,可能会有更好的文档记录。
我正在尝试在 JSNI 中使用 css 资源的客户端包,但找不到任何有用的代码。 我想知道如何在 JSNI 中调用 css 资源以及如何在 JSNI 中准确使用客户端包。
我的普通代码:--
Resource.INSTANCE.button().ensureInjected();
Resource res = GWT.create(Resource.class);
button.setStyleName(res.button().gwtbutton());
jsni怎么写?
这里资源---->是接口扩展clientbundle。 gwtbutton ---> 是 css.
我在这篇 link https://groups.google.com/forum/#!topic/google-web-toolkit/94v4tjCZiBo 中读到我们可以通过 jsni 使用 CssResource。但我不清楚他的用法和语法。
这里没有魔法(好吧,有一点,但在幕后)。您的 Resource
接口的实现由 GWT 自动生成,因此当您调用 res.button().gwtbutton()
时,它将 return 您从 CSS 文件中引用的样式的专有名称。这个名字可能会被混淆,加上前缀等。这对你来说无关紧要 - 最后它只是一个字符串,一个样式的名称。只需将它作为 String
传递给您的 JSNI 方法:
public native void addStyle(String style) /*-{
// Add style to a DOM element
}-*/;
// Invoke like so:
addStyle(res.button().gwtbutton());
如果您想在 JSNI 代码中直接使用您的 ClientBundle:
// First, get Resource instance from a static field
var resource = @package.Resource::INSTANCE;
// Then, get the CssResource with the style
var button = resource.@package.Resource::button()();
// Finally, get the style's name
var gwtButton = button.@package.Button::gwtButton()();
用 package.Resource
代替 Resource
接口的正确限定名称(包 + class 名称)。如果需要,使用 Google Plugin for Eclipse 提供的代码完成。对由 button
方法编辑的类型 return 做同样的事情(它可能是一些扩展 CssResource
的接口)。
如果您对语法有疑问,请 dig through the documentation 或查看有关 Java 本机接口的一些教程 - 它与 JSNI 有很多相似之处,可能会有更好的文档记录。