Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将导航按钮添加到抽象单元格_Java_Css_Gwt - Fatal编程技术网

Java 将导航按钮添加到抽象单元格

Java 将导航按钮添加到抽象单元格,java,css,gwt,Java,Css,Gwt,我已经创建了一个AbstractCell来创建标题,上面写着“欢迎使用您的手机…”,我想在这个AbstractCell中添加两个按钮:第一个按钮返回上一页,第二个按钮返回欢迎页。 我曾经使用以下代码创建header元素,该元素是一个扩展AbstractCell的类: public class HeaderCell extends AbstractCell<String> { interface Templates extends SafeHtmlTemplates {

我已经创建了一个
AbstractCell
来创建标题,上面写着“欢迎使用您的手机…”,我想在这个
AbstractCell
中添加两个按钮:第一个按钮返回上一页,第二个按钮返回欢迎页。 我曾经使用以下代码创建header元素,该元素是一个扩展
AbstractCell
的类:

public class HeaderCell extends AbstractCell<String> {

    interface Templates extends SafeHtmlTemplates {

        String style = "HeaderPanel";

        @SafeHtmlTemplates.Template("<div class=\""+style+"\">{0}</div>")
        SafeHtml cell(SafeHtml value);
    }

    private Templates templates = GWT.create(Templates.class);

    interface templateWithButton extends SafeHtmlTemplates {

    }
    @Override
    public void render(com.google.gwt.cell.client.Cell.Context context,
            String value, SafeHtmlBuilder sb) {
        SafeHtml safeValue = SafeHtmlUtils.fromString(value);

        SafeHtml rendered = templates.cell(safeValue);

        sb.append(rendered);
    }

}

//创建按钮元素
元素按钮=DOM.createButton();
//在这里,您可以根据需要更改html
setInnerHTML(“);
//将其添加到safehtmlbuilder
sb.appendHtmlConstant(button.getInnerHTML());
//创建按钮元素
元素按钮=DOM.createButton();
//在这里,您可以根据需要更改html
setInnerHTML(“);
//将其添加到safehtmlbuilder
sb.appendHtmlConstant(button.getInnerHTML());

将CompositeCell与ActionCells一起用于按钮怎么样

newcompositecell(Arrays.asList(
新标识列(新ActionCell(“,新委托(){…}))
));

将CompositeCell与ActionCells一起用于按钮怎么样

newcompositecell(Arrays.asList(
新标识列(新ActionCell(“,新委托(){…}))
));

我不确定这是否是最好的实现,但它对我来说很有效。 --首先,将其添加到构造函数中:

public HeaderCell() {
   super("click", "keydown");
}
--然后,覆盖onBrowserEvent:

@Override
    public void onBrowserEvent(Context context, Element parent, String value, NativeEvent event, ValueUpdater<String> valueUpdater) {
      // Let AbstractCell handle the keydown event.
      super.onBrowserEvent(context, parent, value, event, valueUpdater);   
      // Handle the click event.
      if ("click".equals(event.getType())) {
        EventTarget eventTarget = event.getEventTarget();
       // in here we check whether the cell that was being clicked is an image, not the entire cell
        if(eventTarget.toString().contains("img src") && !eventTarget.toString().contains("<div class")){
            // do something if it's indeed the image that was clicked
        }
      }
    }
@覆盖
public void onBrowserEvent(上下文上下文、元素父级、字符串值、NativeEvent事件、ValueUpdater ValueUpdater){
//让AbstractCell处理keydown事件。
onBrowserEvent(上下文、父级、值、事件、值更新程序);
//处理单击事件。
如果(“单击“.equals(event.getType())){
EventTarget EventTarget=event.getEventTarget();
//在这里,我们检查被单击的单元格是否是图像,而不是整个单元格

如果(eventTarget.toString().contains(“img src”)&&!eventTarget.toString().contains(“我不确定这是否是最好的实现,但它对我有效。 --首先,将其添加到构造函数中:

public HeaderCell() {
   super("click", "keydown");
}
--然后,覆盖onBrowserEvent:

@Override
    public void onBrowserEvent(Context context, Element parent, String value, NativeEvent event, ValueUpdater<String> valueUpdater) {
      // Let AbstractCell handle the keydown event.
      super.onBrowserEvent(context, parent, value, event, valueUpdater);   
      // Handle the click event.
      if ("click".equals(event.getType())) {
        EventTarget eventTarget = event.getEventTarget();
       // in here we check whether the cell that was being clicked is an image, not the entire cell
        if(eventTarget.toString().contains("img src") && !eventTarget.toString().contains("<div class")){
            // do something if it's indeed the image that was clicked
        }
      }
    }
@覆盖
public void onBrowserEvent(上下文上下文、元素父级、字符串值、NativeEvent事件、ValueUpdater ValueUpdater){
//让AbstractCell处理keydown事件。
onBrowserEvent(上下文、父级、值、事件、值更新程序);
//处理单击事件。
如果(“单击“.equals(event.getType())){
EventTarget EventTarget=event.getEventTarget();
//在这里,我们检查被单击的单元格是否是图像,而不是整个单元格

如果(eventTarget.toString().contains(“img src”)&&!eventTarget.toString().contains(“我注意到按钮添加在HeaderCell下面。我希望它与此演示一样出现在同一行:。如果您能帮助我,我将不胜感激。谢谢您在这种情况下,就用它制作一个表格。这里有一些示例:sb.appendHtmlConstant(“);sb.appendHtmlConstant(“”);sb.appendHtmlConstant(“”);sb.appendHtmlConstant(“”);sb.appendHtmlConstant(“”);sb.appendHtmlConstant(button.getInnerHTML());sb.appendHtmlConstant(“”);您知道如何为图像标签添加操作列表吗?提前感谢我注意到按钮添加在标题单元格下方。我希望它与此演示一样出现在同一行:。如果您能帮助我,我将不胜感激。谢谢在这种情况下,只需用它制作一个表格。这里有一些示例:sb.appendHtmlConstant(“”);sb.appendHtmlConstant(“”);sb.appendHtmlConstant(“”);sb.appendHtmlConstant(“”);sb.appendHtmlConstant(“”);sb.appendHtmlConstant(button.getInnerHTML());sb.appendHtmlConstant(“”);您知道如何为图像标记添加操作列表器吗?提前谢谢您能解释更多吗?ThanksCompositeCell会将每个单独的单元格放在一起。我的代码示例应该在标题单元格的任一侧放置一个按钮(即[])如果这就是你想要的,你可以复制代码,用你的单元格类型替换C,然后实现…元素。请你解释一下好吗?ThanksCompositeCell会把每个单元格放在一起。我的代码示例应该在标题单元格的任一侧都放一个按钮(即[])如果这就是你想要的,你可以复制代码,用你的单元格类型替换C,然后实现…元素。
@Override
    public void onBrowserEvent(Context context, Element parent, String value, NativeEvent event, ValueUpdater<String> valueUpdater) {
      // Let AbstractCell handle the keydown event.
      super.onBrowserEvent(context, parent, value, event, valueUpdater);   
      // Handle the click event.
      if ("click".equals(event.getType())) {
        EventTarget eventTarget = event.getEventTarget();
       // in here we check whether the cell that was being clicked is an image, not the entire cell
        if(eventTarget.toString().contains("img src") && !eventTarget.toString().contains("<div class")){
            // do something if it's indeed the image that was clicked
        }
      }
    }