Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何向gwt树提供数据_Java_Gwt_Tree - Fatal编程技术网

Java 如何向gwt树提供数据

Java 如何向gwt树提供数据,java,gwt,tree,Java,Gwt,Tree,因此,我需要为我的gwt项目创建一个包含树项的树。我使用复合模式来存储需要放在树中的所有信息 用户有一个扩展层次结构的根文件夹,该根文件夹然后有一个层次结构对象列表,可以是文件位置或文件夹。我遇到的麻烦是基于这种模式构建我的树。这些数据都使用hibernate存储在mysql数据库中 我将如何在gwt中实现这一点作为一个树 另外,我创建的树项必须引用回对象,以便我可以重命名或移动它 @Entity @Table(name ="HIERARCHY") @Inheritance(strategy =

因此,我需要为我的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.addItem()
将这些项目添加到目录树中。这有多容易取决于数据库的结构以及如何将信息传递给客户机,但这应该让您开始


另一个选项是使用的类,它有利于显示大型树,并且仅用于在打开文件夹时加载数据。

您必须遍历文件夹/层次结构并找到父节点,然后将此父节点添加到一个树项t,然后找到父节点子节点,然后将它们添加到t,现在对于找到的每个子节点,做同样的事

感谢您的回复,您说这将取决于数据库的结构用户有一个根文件夹,然后有许多子文件夹,子文件夹可以有子文件(仅保留文件的位置)。我正在使用复合模式来实现这一点。当用户登录时,数据被传递到客户端,然后我想在此基础上构建树。我将在上面显示我的类。我的问题是构建树。您需要编写一个服务,以树结构返回给定用户的文件树。在您的客户机代码中,调用此服务(异步),结果是将项目添加到树中,并添加到树中以获取更深层的文件。下面是一个向树中添加项目的好例子:
Tree tree = new Tree();