J'ai donc besoin de créer un arbre avec des éléments pour mon projet gwt. J'utilise le modèle composite pour stocker toutes les informations dont j'ai besoin d'être placé dans un arbre.comment puis-je fournir des données à mon arbre gwt
Un utilisateur possède un dossier racine qui étend la hiérarchie, ce dossier racine contient alors une liste d'objets de hiérarchie, qui peuvent être FileLocations ou des dossiers. Le problème que j'ai est de construire mon arbre basé sur ce modèle. ces données sont toutes stockées en utilisant hibernate dans une base de données MySQL
Comment pourrais-je implémenter ceci comme un arbre dans gwt.
De plus, l'élément de l'arbre que je crée devrait faire référence à l'objet afin que je puisse le renommer ou le déplacer.
@Entity
@Table(name ="HIERARCHY")
@Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(
name = "HIERARCHY_TYPE", discriminatorType = DiscriminatorType.STRING)
public abstract class Hierarchy implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "hierarchy_id", updatable = false, nullable = false)
private int hId;
@Entity
@DiscriminatorValue("F")
public class Folder extends Hierarchy {
@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.EAGER)
@JoinTable(name = "FOLDER_JOIN_FILELOCATION", joinColumns = {
@JoinColumn(name = "folder_id") }, inverseJoinColumns = {
@JoinColumn(name = "file_information_id") })
private List<Hierarchy> children = new ArrayList<Hierarchy>() ;
@Column(name = "folder_name")
private String folderName;
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name="FOLDER_JOIN_FOLDER",
joinColumns = @JoinColumn(name="parent_folder_id"),
inverseJoinColumns = @JoinColumn(name="folder_ID")
)
private Hierarchy parent;
@Entity
@DiscriminatorValue("FI")
public class FileInformation extends Hierarchy {
@Column (name = "location")
private String location;
@ManyToOne(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name="FILEINFORMATION_JOIN_FOLDER",
joinColumns = @JoinColumn(name="filelocation_id"),
inverseJoinColumns = @JoinColumn(name="folder_ID")
)
private Hierarchy parent;
maintenant donc je veux construire l'arbre basé sur cette structure. si ma logique est erronée pourriez-vous me pointer dans la bonne direction
Tree tree = new Tree();
maintenant pour chaque dossier ou FileInformation dans un dossier que je veux créer un élément d'arbre? cet élément d'arbre doit également faire référence à l'objet lui-même
merci pour la réponse vous avez dit cela est dépendra de la façon dont votre base de données est structurée Les utilisateurs ont un dossier racine, il a alors de nombreux sous-dossiers et fichiers sous par lesquels des sous-dossiers peuvent avoir des fichiers sous (uniquement tenir un emplacement dans le fichier). J'utilise le modèle composite pour l'implémenter. Lorsqu'un utilisateur se connecte, les données sont passées côté client, puis je veux construire l'arbre en fonction de cela. Je vais afficher mes cours ci-dessus. mon problème est de construire l'arbre. – molleman
J'ai édité mon poste ci-dessus – molleman
Vous aurez besoin d'écrire un service qui retourne l'arborescence de fichiers pour un utilisateur donné, dans une structure arborescente. Dans votre code client, appelez ce service (de manière asynchrone) et, avec le résultat, ajoutez des éléments à votre arborescence et à TreeItems pour les fichiers plus profonds. Voici un bon exemple d'ajout d'éléments à l'arborescence: http://examples.roughian.com/index.htm#Widgets~Tree –