a5233363b4a8421805e78ce94cad358e909286c5
[cdm-vaadin.git] / src / main / java / eu / etaxonomy / cdm / vaadin / view / ConceptRelationshipView.java
1 // $Id$
2 /**
3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
6 *
7 * The contents of this file are subject to the Mozilla Public License Version 1.1
8 * See LICENSE.TXT at the top of this package for the full license terms.
9 */
10 package eu.etaxonomy.cdm.vaadin.view;
11
12 import java.util.UUID;
13
14 import com.vaadin.annotations.AutoGenerated;
15 import com.vaadin.navigator.View;
16 import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
17 import com.vaadin.ui.Alignment;
18 import com.vaadin.ui.CustomComponent;
19 import com.vaadin.ui.HorizontalLayout;
20
21 import eu.etaxonomy.cdm.vaadin.component.ConceptRelationshipComposite;
22 import eu.etaxonomy.cdm.vaadin.component.StatusComposite;
23 import eu.etaxonomy.cdm.vaadin.session.BasicEvent;
24 import eu.etaxonomy.cdm.vaadin.session.IBasicEventListener;
25 import eu.etaxonomy.cdm.vaadin.util.CdmVaadinSessionUtilities;
26
27 /**
28 * @author cmathew
29 * @date 9 Apr 2015
30 *
31 */
32 public class ConceptRelationshipView extends CustomComponent implements View, IBasicEventListener {
33
34 /*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
35
36 @AutoGenerated
37 private HorizontalLayout mainLayout;
38 @AutoGenerated
39 private StatusComposite statusCompositeRight;
40 @AutoGenerated
41 private ConceptRelationshipComposite conceptRelationshipComposite;
42 @AutoGenerated
43 private StatusComposite statusCompositeLeft;
44
45 private StatusComposite primaryStatusComposite, secondaryStatusComposite;
46 /**
47 * The constructor should first build the main layout, set the
48 * composition root and then do any custom initialization.
49 *
50 * The constructor will not be automatically regenerated by the
51 * visual editor.
52 */
53 public ConceptRelationshipView() {
54
55 buildMainLayout();
56 setCompositionRoot(mainLayout);
57
58 conceptRelationshipComposite.setView(this);
59 conceptRelationshipComposite.setSizeFull();
60
61 setPrimaryStatusComposite(statusCompositeLeft.getSelectedClassificationUuid());
62
63 CdmVaadinSessionUtilities.getCurrentBasicEventService().register(this);
64 }
65
66 /* (non-Javadoc)
67 * @see com.vaadin.navigator.View#enter(com.vaadin.navigator.ViewChangeListener.ViewChangeEvent)
68 */
69 @Override
70 public void enter(ViewChangeEvent event) {
71 // TODO Auto-generated method stub
72
73 }
74
75 public void setPrimaryStatusComposite(UUID scUuid) {
76 if(scUuid != null) {
77 if(statusCompositeLeft.getSelectedClassificationUuid().equals(scUuid)) {
78 primaryStatusComposite = statusCompositeLeft;
79 secondaryStatusComposite = statusCompositeRight;
80 } else {
81 secondaryStatusComposite = statusCompositeLeft;
82 primaryStatusComposite = statusCompositeRight;
83 }
84 secondaryStatusComposite.clearTaxaTableSelections();
85 }
86 }
87
88 /* (non-Javadoc)
89 * @see eu.etaxonomy.cdm.vaadin.session.IBasicEventListener#onAction(eu.etaxonomy.cdm.vaadin.session.BasicEvent)
90 */
91 @Override
92 public void onAction(BasicEvent event) {
93 if(event.getEventId().equals(ConceptRelationshipComposite.UPDATE_START_ID)) {
94 primaryStatusComposite.setTaxaTableEnabled(false);
95 secondaryStatusComposite.setTaxaTableSelectable(false);
96 }
97 if(event.getEventId().equals(ConceptRelationshipComposite.UPDATE_END_ID)) {
98 primaryStatusComposite.setTaxaTableEnabled(true);
99 secondaryStatusComposite.setTaxaTableSelectable(true);
100 }
101 }
102
103 @AutoGenerated
104 private HorizontalLayout buildMainLayout() {
105 // common part: create layout
106 mainLayout = new HorizontalLayout();
107 mainLayout.setImmediate(false);
108 mainLayout.setWidth("100%");
109 mainLayout.setHeight("100%");
110 mainLayout.setMargin(true);
111
112 // top-level component properties
113 setWidth("100.0%");
114 setHeight("100.0%");
115
116 // statusCompositeLeft
117 statusCompositeLeft = new StatusComposite();
118 statusCompositeLeft.setImmediate(false);
119 statusCompositeLeft.setWidth("-1px");
120 statusCompositeLeft.setHeight("-1px");
121 mainLayout.addComponent(statusCompositeLeft);
122
123 // conceptRelationshipComposite
124 conceptRelationshipComposite = new ConceptRelationshipComposite();
125 conceptRelationshipComposite.setImmediate(false);
126 conceptRelationshipComposite.setWidth("-1px");
127 conceptRelationshipComposite.setHeight("-1px");
128 mainLayout.addComponent(conceptRelationshipComposite);
129 mainLayout.setExpandRatio(conceptRelationshipComposite, 1.0f);
130 mainLayout.setComponentAlignment(conceptRelationshipComposite, new Alignment(20));
131
132 // statusCompositeRight
133 statusCompositeRight = new StatusComposite();
134 statusCompositeRight.setImmediate(false);
135 statusCompositeRight.setWidth("-1px");
136 statusCompositeRight.setHeight("-1px");
137 mainLayout.addComponent(statusCompositeRight);
138
139 return mainLayout;
140 }
141
142
143 }