Project

General

Profile

Download (3.31 KB) Statistics
| Branch: | Tag: | Revision:
1
/**
2
 *
3
 */
4
package eu.etaxonomy.taxeditor.editor.key.polytomous.e4;
5

    
6
import javax.annotation.PostConstruct;
7
import javax.inject.Inject;
8
import javax.inject.Named;
9

    
10
import org.eclipse.e4.ui.services.EMenuService;
11
import org.eclipse.e4.ui.services.IServiceConstants;
12
import org.eclipse.jface.viewers.IBaseLabelProvider;
13
import org.eclipse.jface.viewers.IContentProvider;
14
import org.eclipse.swt.SWT;
15
import org.eclipse.swt.events.ControlEvent;
16
import org.eclipse.swt.events.ControlListener;
17
import org.eclipse.swt.layout.FillLayout;
18
import org.eclipse.swt.widgets.Composite;
19
import org.eclipse.swt.widgets.Shell;
20
import org.eclipse.zest.core.viewers.GraphViewer;
21
import org.eclipse.zest.core.widgets.ZestStyles;
22

    
23
import eu.etaxonomy.cdm.api.conversation.ConversationHolder;
24
import eu.etaxonomy.cdm.model.description.PolytomousKey;
25
import eu.etaxonomy.taxeditor.editor.key.e4.AbstractGraphKeyEditorE4;
26
import eu.etaxonomy.taxeditor.editor.key.polytomous.IPolytomousKeyEditorPage;
27
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyGraphContentProvider;
28
import eu.etaxonomy.taxeditor.editor.key.polytomous.PolytomousKeyLabelProvider;
29
import eu.etaxonomy.taxeditor.store.CdmStore;
30
import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
31

    
32
/**
33
 * @author n.hoffmann
34
 *
35
 */
36
public class PolytomousKeyGraphEditorE4 extends
37
		AbstractGraphKeyEditorE4<PolytomousKey> implements
38
		IPolytomousKeyEditorPage {
39

    
40
	public static final String ID = "eu.etaxonomy.taxeditor.editor.key.polytomous.graph"; //$NON-NLS-1$
41

    
42
	@Inject
43
	public PolytomousKeyGraphEditorE4() {
44
	}
45

    
46
	@PostConstruct
47
    public void createPartControl(Composite parent, EMenuService menuService,
48
            @Named(IServiceConstants.ACTIVE_SHELL)Shell shell) {
49
	    if(!CdmStore.isActive()){
50
	        return;
51
	    }
52

    
53
        formFactory = new CdmFormFactory(shell.getDisplay());
54
        container = formFactory.createComposite(parent);
55

    
56
        container.setLayout(new FillLayout());
57
        viewer = new GraphViewer(container, SWT.NONE);
58

    
59
        viewer.setContentProvider(getContentProvider());
60
        viewer.setLabelProvider(getLabelProvider());
61

    
62
        viewer.setConnectionStyle(ZestStyles.CONNECTIONS_DIRECTED);
63

    
64
        viewer.setLayoutAlgorithm(getLayoutAlgoritm(), false);
65

    
66
        //propagate selection
67
        selectionChangedListener = (event -> selService.setSelection(event.getSelection()));
68
        viewer.addSelectionChangedListener(selectionChangedListener);
69

    
70
        //create context menu
71
        menuService.registerContextMenu(viewer.getControl(), "eu.etaxonomy.taxeditor.editor.popupmenu.polytomouskeygrapheditor");
72

    
73
        //FIXME E4 migrate
74
//      createToolbar();
75

    
76
        container.addControlListener(new ControlListener() {
77

    
78
            @Override
79
            public void controlResized(ControlEvent e) {
80
                // applyLayout();
81
            }
82

    
83
            @Override
84
            public void controlMoved(ControlEvent e) {
85

    
86
            }
87
        });
88
    }
89

    
90
	@Override
91
	public ConversationHolder getConversationHolder() {
92
		return getEditorInput()
93
				.getConversationHolder();
94
	}
95

    
96
	@Override
97
	public PolytomousKey getKey() {
98
		return getEditorInput().getKey();
99
	}
100

    
101
	@Override
102
	protected IBaseLabelProvider getLabelProvider() {
103
		return new PolytomousKeyLabelProvider();
104
	}
105

    
106
	@Override
107
	protected IContentProvider getContentProvider() {
108
		return new PolytomousKeyGraphContentProvider();
109
	}
110
}
(1-1/2)