2015-04-05 52 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); 

} 
相關問題