教学管理系统-一对多界面处理

原创 2006年05月29日 01:02:00
模型

学院—1——n—班级—1——n—学生

界面

学院—班级:在视图中用TreeViewer进行组织。当用户双击班级时,打开班级的Editor。CollegeClass中的Students采用延迟加载,否则会加载大量的Student对象。

班级—学生:在以FormEditor进行组织。学生列表以TableViewer显示,单击一条,在DetailView中显示学生信息。在EditorInput初始化时,从后台重新加载CollegeClass对象,并取出Student,EJBQL为

from CollegeClass o left join fetch o.students where o.id = :id
关联更新

1.班级对象级联更新学生对象

添加和删除学生对象直接对CollegeClass#List<Student> students字段直接操作。要产生级联更新(删除)的效果,需要添加Hibernate anntotation:

@OneToMany(mappedBy = "collegeClass", cascade = CascadeType.ALL)
@org.hibernate.annotations.Cascade(org.hibernate.annotations.CascadeType.DELETE_ORPHAN)
public List<Student> getStudents() 
    return students;
}

编辑学生信息直接merge即可。

2.视图与编辑器之间的关联更新

当用户保存编辑器的修改时,如果班级的名称发生变化需要更新视图中的班级名称显示。由于班级对象在EditorInput已重新加载,即编辑器和视图引用的是两个不同对象,所以需要在EditorInput保存视图传递的班级对象source。在保存时,如果班级名称发生变化,更新到source中。在视图打开编辑器之前,需要先注册监听器,这样当source模型被修改时,视图可以得以通知。

上面的模式感觉不是很好,期待高手指点...

当用户从视图的右键菜单删除一个班级时,需要关闭已打开的编辑器。

private void closeCollegeClassEditor(CollegeClass collegeClass) {
   CollegeClassEditorInput input = new CollegeClassEditorInput(collegeClass);
   IEditorPart editor = this.getSite().getPage().findEditor(input);
   if (editor != null) {
    this.getSite().getPage().closeEditor(editor, false);
  }
}

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

教学管理系统

教学管理系统 这是这几天写的一个教学管理系统,功能不是很齐全,而且还有一些小问题,在第158行我想尝试一下如同电脑中输入密码时有圆点或星号覆盖输入密码的情形,但是失败了,请各位大神帮忙看看。 ...

教学管理系统E-R建模

对于教学管理系统,我们就很容易想到教学管理中肯定有老师,而老师是有性别,年龄,电话号码,家庭住址作为属性的,有老师就一定有课程,老师可以进行授课,老师可以以一对多的形式讲授特定的课程系,而课程要进行区...

教学管理系统

  • 2014-09-22 17:36
  • 2.47MB
  • 下载

教学管理系统

  • 2014-05-19 10:52
  • 2.47MB
  • 下载

J2EE项目系列(二)--博客管理系统(Maven+SpringMVC+Hibernate以及附加分页和一对多查询功能)

很抱歉,同时写几个系列并且本人在考试月,真的有的忙不过来,也要复习一些考试知识,所以更新得有点慢,但我会坚持更新这一些系列的。请大家放心。今天要更的是SpringMVC+Hibernate的项目并附带...

教学管理系统

  • 2014-06-14 23:21
  • 1.76MB
  • 下载

jsp网络教学管理系统

  • 2013-08-05 12:39
  • 21.61MB
  • 下载

C++项目(1):学生信息管理系统(简单教学版)

我的第一个C++项目。粗糙的学生信息管理系统。用TXT文件来做数据持久化。

教学管理系统

  • 2013-03-22 09:46
  • 1.03MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)