Oskar
Jarczyk
Artificial
intelligence expert
@ Deep.BI, PhD in
Social I...
Temat: seam: jak robić backing beany ?
narazie stawiam pierwsze kroki w seamie, mam na stronce element
<rich:panelBar selectedPanel="#{navigation.selected}"
id="sidebarPanelBar" height="300" width="180"
valueChangeListener="#{navigation.valueChangeListener}">
i niżej itemy, klasa navigation taka:
@Name("navigation")
@Scope(SESSION)
public class Navigation implements Serializable {
/**
* Persist a selected panel
*/
private static final long serialVersionUID = -9153545597475708854L;
private String selected = "jsBarItem"; // to jest jeden z itemow
public void valueChangeListener(javax.faces.event.ValueChangeEvent event) {
// nie dziala
UIComponent component = (UIComponent) event.getComponent()
.findComponent("sidebarPanelBar");
System.out.println("sfsfs 600 sfsfs");
// zapisac nowy panel
Map<String, Object> mapa = component.getAttributes();
selected = (String)mapa.get("selectedPanel");
}
/**
* @param selected the selected to set
*/
public void setSelected(String selected) {
this.selected = selected;
}
/**
* @return the selected
*/
public String getSelected() {
return selected;
}
}
zależy mi na pamiętaniu otwartego panelu przy przejściu ze strony na stronę (logicznie rzecz biorąc, powinno być coś w stylu onload i tam przypisać wartość do selectedPanel)
czy mi sie wydaje, czy ten komponent panelBar jest niedorobiony (czemu tam jest tylko jeden listener, w jaki sposob dobrac sie do wartosci selectedPanel w beanie, skoro nie za bardzo da się zaimplementować jakiś sensowny listener) ?