diff --git a/src/cn/edu/hit/education/action/AddCollegeAction.java b/src/cn/edu/hit/education/action/AddCollegeAction.java new file mode 100644 index 0000000000000000000000000000000000000000..a9a8dff7b9838afe33222c725d66e13778cec65c --- /dev/null +++ b/src/cn/edu/hit/education/action/AddCollegeAction.java @@ -0,0 +1,28 @@ +package cn.edu.hit.education.action; + +import org.eclipse.jface.action.Action; +import org.eclipse.ui.plugin.AbstractUIPlugin; + +import cn.edu.hit.education.utils.CourseUtil; +import educationschedule.Activator; + +public class AddCollegeAction extends Action { + /** + * @wbp.parser.entryPoint + */ + public AddCollegeAction(){ + this.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/toolbar/course_code_16px.png")); + this.setToolTipText("增加学院"); + this.setText("增加学院"); + } + + @Override + public void run() { + // TODO Auto-generated method stub + CourseUtil.codeCourse(); + super.run(); + } + + + +} diff --git a/src/cn/edu/hit/education/action/AddSpecialtyAction.java b/src/cn/edu/hit/education/action/AddSpecialtyAction.java new file mode 100644 index 0000000000000000000000000000000000000000..aaf9296069e208840d35746bbbc7197c2cb127e7 --- /dev/null +++ b/src/cn/edu/hit/education/action/AddSpecialtyAction.java @@ -0,0 +1,28 @@ +package cn.edu.hit.education.action; + +import org.eclipse.jface.action.Action; +import org.eclipse.ui.plugin.AbstractUIPlugin; + +import cn.edu.hit.education.utils.CourseUtil; +import educationschedule.Activator; + +public class AddSpecialtyAction extends Action { + /** + * @wbp.parser.entryPoint + */ + public AddSpecialtyAction(){ + this.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/toolbar/course_code_16px.png")); + this.setToolTipText("增加专业"); + this.setText("增加专业"); + } + + @Override + public void run() { + // TODO Auto-generated method stub + CourseUtil.codeCourse(); + super.run(); + } + + + +} diff --git a/src/cn/edu/hit/education/action/AddUniversityAction.java b/src/cn/edu/hit/education/action/AddUniversityAction.java new file mode 100644 index 0000000000000000000000000000000000000000..ee3e2c77c1327d8f083d56682c5b2ab392cae2dd --- /dev/null +++ b/src/cn/edu/hit/education/action/AddUniversityAction.java @@ -0,0 +1,28 @@ +package cn.edu.hit.education.action; + +import org.eclipse.jface.action.Action; +import org.eclipse.ui.plugin.AbstractUIPlugin; + +import cn.edu.hit.education.utils.CourseUtil; +import educationschedule.Activator; + +public class AddUniversityAction extends Action { + /** + * @wbp.parser.entryPoint + */ + public AddUniversityAction(){ + this.setImageDescriptor(AbstractUIPlugin.imageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/toolbar/course_code_16px.png")); + this.setToolTipText("增加学校"); + this.setText("增加学校"); + } + + @Override + public void run() { + // TODO Auto-generated method stub + CourseUtil.codeCourse(); + super.run(); + } + + + +} diff --git a/src/cn/edu/hit/education/view/CourseExploreView.java b/src/cn/edu/hit/education/view/CourseExploreView.java index 04ebbd6e613f9b6411d3c952773f9e8cf9313e45..eea5f9bdcf13be6b4c3cb6c30047a1177e1422a3 100644 --- a/src/cn/edu/hit/education/view/CourseExploreView.java +++ b/src/cn/edu/hit/education/view/CourseExploreView.java @@ -1,34 +1,32 @@ package cn.edu.hit.education.view; -import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.jface.action.IMenuListener; +import org.eclipse.jface.action.IMenuManager; +import org.eclipse.jface.action.MenuManager; import org.eclipse.jface.util.LocalSelectionTransfer; +import org.eclipse.jface.viewers.IStructuredSelection; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; import org.eclipse.swt.dnd.DND; import org.eclipse.swt.dnd.TextTransfer; import org.eclipse.swt.dnd.Transfer; -import org.eclipse.swt.events.SelectionAdapter; -import org.eclipse.swt.events.SelectionEvent; -import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Event; -import org.eclipse.swt.widgets.Listener; -import org.eclipse.swt.widgets.Menu; -import org.eclipse.swt.widgets.MenuItem; -import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Tree; -import org.eclipse.swt.widgets.TreeItem; -import org.eclipse.ui.PlatformUI; import org.eclipse.ui.part.ViewPart; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; +import cn.edu.hit.education.action.AddCollegeAction; +import cn.edu.hit.education.action.AddSpecialtyAction; +import cn.edu.hit.education.action.AddUniversityAction; import cn.edu.hit.education.contentprovider.CourseContentProvider; -import cn.edu.hit.education.dialog.SeparateCourseDialog; import cn.edu.hit.education.labelprovider.CourseLabelProvider; import cn.edu.hit.education.listener.MyDragSourceListener; -import cn.edu.hit.education.model.CourseNode; +import cn.edu.hit.education.model.CollegeNode; import cn.edu.hit.education.model.CourseRootNode; +import cn.edu.hit.education.model.Node; +import cn.edu.hit.education.model.SpecialtyNode; +import cn.edu.hit.education.model.UniversityNode; import cn.edu.hit.education.pojo.Semester; import cn.edu.hit.education.pojo.Specialty; import cn.edu.hit.education.service.ICourseService; @@ -63,6 +61,7 @@ public class CourseExploreView extends ViewPart { final Transfer[] transfer2=new Transfer[] {TextTransfer.getInstance()}; private TreeViewer treeViewer; + private Tree tree; private Semester semester; private Specialty specialty; @@ -71,18 +70,16 @@ public class CourseExploreView extends ViewPart { } public void createPartControl(Composite parent) { - treeViewer = new TreeViewer(parent, SWT.BORDER); - Tree tree = treeViewer.getTree(); + tree = treeViewer.getTree(); treeViewer.addDragSupport(DND.DROP_MOVE, transfer2, new MyDragSourceListener(treeViewer)); treeViewer.setContentProvider(new CourseContentProvider()); treeViewer.setLabelProvider(new CourseLabelProvider()); - treeViewer.setInput(CourseRootNode.getRootNode()); - tree.addSelectionListener(new SelectionAdapter() { + /*tree.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { TreeItem selections = (TreeItem)e.item; @@ -123,25 +120,38 @@ public class CourseExploreView extends ViewPart { // TODO Auto-generated method stub } - }); + });*/ - tree.addListener(SWT.MouseDown, new Listener() { + createContextMenu(parent); + } + + private void createContextMenu(Composite parent){ + final MenuManager mm = new MenuManager(); + mm.setRemoveAllWhenShown(true); + + mm.addMenuListener(new IMenuListener(){ @Override - public void handleEvent(Event event) { - - if (tree.getSelection().length > 0) { - separateItem.setEnabled(true); - - } else { - separateItem.setEnabled(false); - + public void menuAboutToShow(IMenuManager manager) { + // TODO Auto-generated method stub + IStructuredSelection selection = (IStructuredSelection)treeViewer.getSelection(); + if(!selection.isEmpty()){ + Node node = (Node)selection.getFirstElement(); + if(node instanceof UniversityNode){ + mm.add(new AddUniversityAction()); + }else if(node instanceof CollegeNode){ + mm.add(new AddCollegeAction()); + }else if(node instanceof SpecialtyNode){ + mm.add(new AddSpecialtyAction()); + } } } + }); - + + treeViewer.getControl().setMenu(mm.createContextMenu(treeViewer.getControl())); } - + /** * Passing the focus request to the viewer's control. */ diff --git a/src/cn/edu/hit/education/view/DepartmentExploreView.java b/src/cn/edu/hit/education/view/DepartmentExploreView.java index d559a3393f68c31f69af6b3456c4f1d30a5d81a4..9e1ed2ef4cc0f978ddcbbed86627a41f3f14aaa4 100644 --- a/src/cn/edu/hit/education/view/DepartmentExploreView.java +++ b/src/cn/edu/hit/education/view/DepartmentExploreView.java @@ -2,32 +2,115 @@ package cn.edu.hit.education.view; import org.eclipse.jface.viewers.TreeViewer; import org.eclipse.swt.SWT; +import org.eclipse.swt.events.SelectionAdapter; +import org.eclipse.swt.events.SelectionEvent; +import org.eclipse.swt.events.SelectionListener; import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Event; +import org.eclipse.swt.widgets.Listener; +import org.eclipse.swt.widgets.Menu; +import org.eclipse.swt.widgets.MenuItem; import org.eclipse.swt.widgets.Tree; +import org.eclipse.swt.widgets.TreeItem; import org.eclipse.ui.part.ViewPart; import org.springframework.stereotype.Component; import cn.edu.hit.education.contentprovider.DepartmentContentProvider; import cn.edu.hit.education.labelprovider.DepartmentLabelProvider; +import cn.edu.hit.education.model.CollegeNode; +import cn.edu.hit.education.model.CourseNode; import cn.edu.hit.education.model.DepartmentRootNode; +import cn.edu.hit.education.model.Node; +import cn.edu.hit.education.model.SpecialtyNode; +import cn.edu.hit.education.model.UniversityNode; @Component public class DepartmentExploreView extends ViewPart { public static final String ID = "cn.edu.hit.education.view.DepartmentExploreView"; private TreeViewer treeViewer; + private Tree tree; + private Node currentNode; public DepartmentExploreView() { } - + public void createPartControl(Composite parent) { - + treeViewer = new TreeViewer(parent, SWT.BORDER); - Tree tree = treeViewer.getTree(); - + tree = treeViewer.getTree(); + treeViewer.setContentProvider(new DepartmentContentProvider()); treeViewer.setLabelProvider(new DepartmentLabelProvider()); treeViewer.setInput(DepartmentRootNode.getRootNode()); + + ///////////////////////////////////////// + makeListener(); + //makeContextMenu(); + } + + private void makeContextMenu() { + // 实现课程页面右键点击弹出菜单--分散授课 + Menu contextMenu = new Menu(tree); + tree.setMenu(contextMenu); + if(currentNode == null){ + MenuItem addUniversityItem = new MenuItem(contextMenu, SWT.None); + addUniversityItem.setEnabled(false); + addUniversityItem.setText("增加学校"); + addUniversityItem.addSelectionListener(new SelectionListener() { + @Override + public void widgetSelected(SelectionEvent e) { + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + } + }); + } + if(currentNode instanceof UniversityNode){ + MenuItem addCollegeItem = new MenuItem(contextMenu, SWT.None); + addCollegeItem.setEnabled(false); + addCollegeItem.setText("增加学院"); + addCollegeItem.addSelectionListener(new SelectionListener() { + @Override + public void widgetSelected(SelectionEvent e) { + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + } + }); + }else if(currentNode instanceof CollegeNode){ + MenuItem addSpecialtyItem = new MenuItem(contextMenu, SWT.None); + addSpecialtyItem.setEnabled(false); + addSpecialtyItem.setText("增加专业"); + addSpecialtyItem.addSelectionListener(new SelectionListener() { + @Override + public void widgetSelected(SelectionEvent e) { + } + + @Override + public void widgetDefaultSelected(SelectionEvent e) { + } + }); + }else if(currentNode instanceof SpecialtyNode){ + + }else{ + + } + } + + private void makeListener(){ + tree.addSelectionListener(new SelectionAdapter() { + @Override + public void widgetSelected(SelectionEvent event) { + TreeItem selections = (TreeItem)event.item; + currentNode = (Node)selections.getData(); + + makeContextMenu(); + } + + }); } /**