J'utilise Netbeans 6.8 et j'essaie d'obtenir une interface utilisateur en utilisant Metawidget et JPA. Je ne peux pas direComment ajouter une action liée à un objet métier dans Metawidget?
@Action
public void save(ActionEvent event)
{
mSearchMetawidget.save();
}
Cette annotation donne une erreur "types incompatibles" lorsque j'ajoute l'importation suivante.
import org.metawidget.inspector.impl.actionstyle.Action;
Que faire? Comment puis-je ajouter une action liée à mon entité utilisateur? Je veux faire "enregistrer" l'action. Merci à l'avance
Réponse à Richard
Je pensais que @Action était une annotation Metawidget et a un mal de tête en raison d'importer errors.I obtenir now.i aussi besoin d'ajouter des bibliothèques swing. L'annotation @Action appartient à SwingAppFramework. En fait, nous voulons mettre à jour nos enregistrements de base de données à partir d'interfaces utilisateur qui sont extraites automatiquement par Metawidget. Nous avons créé des classes d'entités et essayons de les modifier pour atteindre cet objectif. Comment pouvons-nous dire à nos classes d'interface utilisateur que lorsqu'un bouton est enfoncé, en utilisant les données entrées dans les champs d'interface, les enregistrements sont mis à jour?
Merci.
Réponse 2 à Richard
Je veux utiliser EntityManager de JPA. Le code associé à EntityManager doit-il être ajouté dans l'action Listener? Pour la classe suivante, son auditeur est addUser()
J'ai une classe d'entité, User.java
package datamodeldemo;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.DiscriminatorColumn;
import javax.persistence.DiscriminatorType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;
import org.metawidget.inspector.annotation.*;
import org.metawidget.inspector.annotation.UiAction;
import org.metawidget.inspector.commons.jexl.UiJexlAttribute;
@Entity
@Table(name="ShineeUser")
@Inheritance(strategy=InheritanceType.JOINED)
@DiscriminatorColumn(name="USER_TYPE",
discriminatorType= DiscriminatorType.STRING, length=20)
public class User implements Serializable
{
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name="USER_ID", nullable = false)
private Integer user_id;
@Column(name="USER_NAME", nullable = false)
private String user_name;
@Column(name="PASSWORD", nullable = false)
private String password;
@Column(name="USER_TYPE")
private UserType userType;
@Column(name = "EMAIL")
private String e_mail;
@Column(name = "TELEPHONE")
private String telephone;
public enum UserType {customer, hotelAdmin, agencyAdmin};
@UiHidden
public Integer getId() {
return user_id;
}
public void setId(Integer id) {
this.user_id = id;
}
@UiComesAfter("user_name")
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@UiComesAfter("user_id")
public String getUser_name() {
return user_name;
}
public void setUser_name(String user_name) {
this.user_name = user_name;
}
@UiComesAfter("password")
public UserType getUserType() {
return userType;
}
public void setUserType(UserType userType) {
this.userType = userType;
}
@UiComesAfter("userType")
public String getE_mail() {
return e_mail;
}
public void setE_mail(String e_mail) {
this.e_mail = e_mail;
}
@UiComesAfter("e_mail")
public String getTelephone() {
return telephone;
}
public void setTelephone(String telephone) {
this.telephone = telephone;
}
@Override
public int hashCode() {
int hash = 0;
hash += (user_id != null ? user_id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof User)) {
return false;
}
User other = (User) object;
if ((this.user_id == null && other.user_id != null) ||
(this.user_id != null && !this.user_id.equals(other.user_id))) {
return false;
}
return true;
}
@Override
public String toString()
{
return "datamodeldemo.User[id=" + user_id + "]";
}
@UiAction
@UiJexlAttribute(name = "HIDDEN", expression = "this.user != null")
public void addUser()
{
//Database update???
}
}
Merci.
@Gulcan Si vous avez d'autres détails que vous souhaitez partager avec d'autres utilisateurs, il est préférable de le faire sous forme de commentaires sur leurs réponses ou en ajoutant ces détails à votre question initiale. J'ai supprimé vos posts ci-dessous, mais je les ai fusionnés dans votre question d'origine. – Sampson