Так что мне нужно создать дерево с элементами дерева для моего проекта GWT. Я использую составной шаблон для хранения всей информации, которую мне нужно разместить в дереве.
У пользователя есть корневая папка, которая расширяет иерархию, тогда эта корневая папка имеет список объектов иерархии, которые могут быть файловыми папками или папками. Проблема, которую я имею, строит мое дерево, основанное на этом образце. все эти данные хранятся с использованием hibernate в базе данных mysql
Как бы я мог реализовать это как дерево в GWT.
Также созданный мной элемент дерева должен был бы ссылаться на объект, чтобы я мог переименовать или переместить его.
@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;
Теперь я хочу построить дерево на основе этой структуры. если моя логика неверна, не могли бы вы указать мне правильное направление
Tree tree = new Tree();
Теперь для каждой папки или файловой информации в папке я хочу создать элемент дерева? этот элемент дерева должен также ссылаться на сам объект