2015-04-05 54 views
-1

我是新来的apache检票口。我需要在wicket中显示div的默认图像。点击图像的左侧我想替换它的其他图像和右侧的点击我想用另一个图像替换它。如何在门票上点击三个div显示不同的图像?

为此,我想出了以下HTML和Java代码:

我试图默认类添加到WebMarkupContainer并单击事件我加左,右类相应。

public class Hello extends WebPage { 

private static final long serialVersionUID = 1L; 
WebMarkupContainer ldc=new WebMarkupContainer("linkDecisionContainer"); 

private AjaxLink left; 
private AjaxLink right; 

public Hello() { 

    super(); 

    ldc.add(new AttributeModifier("class", true, new Model<String>("default"))); 

    left = new AjaxLink("leftChoice") { 
     private static final long serialVersionUID = 1L; 

     @Override 
     public void onClick(AjaxRequestTarget target) { 
      switchView("left"); 
      target.addComponent(right); 
     } 
    }; 

    right = new AjaxLink("rightChoice") { 
     private static final long serialVersionUID = 1L; 

     @Override 
     public void onClick(AjaxRequestTarget target) { 
      switchView("right"); 
      target.addComponent(right); 
     } 
    }; 

    add(left); 
    add(right); 

} 


    private void switchView(String viewName) { 
     if (viewName.equals("left")) { 
      ldc.add(new AttributeModifier("class", true, new Model<String>("left"))); 
     } 
     else if (viewName.equals("right")) { 
      ldc.add(new AttributeModifier("class", true, new Model<String>("right"))); 
     } 
    } 

} 

任何人都可以请指导我实现它吗?

回答

2

从你提供的代码看起来你不刷新“linkDecisionContainer”。此外,您不应该添加越来越多的类,而只需更改基础模型的值。 AttributeModifier将不会被添加另一个替换。因此,你依靠执行Behaviors来确定哪个Modifier获得了强大的胜利。

private IModel<String> ldcClassModel; 

public Hello() { 
    super(); 

    ldcClassModel = Model.of("default"); 
    final WebMarkupContainer ldc = new WebMarkupContainer("linkDecisionContainer"); 
    add(ldc); 
    ldc.setOutputMarkupId(true); 
    ldc.add(new AttributeModifier("class", ldcClassModel)); 

    AjaxLink left = new AjaxLink("leftChoice") { 
     private static final long serialVersionUID = 1L; 

     @Override 
     public void onClick(AjaxRequestTarget target) { 
      ldcClassModel.setObject("left"); 
      target.addComponent(ldc); 
     } 
    }; 
    AjaxLink right = new AjaxLink("rightChoice") { 
     private static final long serialVersionUID = 1L; 

     @Override 
     public void onClick(AjaxRequestTarget target) { 
      ldcClassModel.setObject("right"); 
      target.addComponent(ldc); 
     } 
    }; 

    add(left); 
    add(right); 

} 
相关问题