3 * Copyright (C) 2015 EDIT
4 * European Distributed Institute of Taxonomy
5 * http://www.e-taxonomy.eu
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.
10 package eu
.etaxonomy
.cdm
.vaadin
.view
;
12 import java
.util
.UUID
;
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
;
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
;
32 public class ConceptRelationshipView
extends CustomComponent
implements View
, IBasicEventListener
{
34 /*- VaadinEditorProperties={"grid":"RegularGrid,20","showGrid":true,"snapToGrid":true,"snapToObject":true,"movingGuides":false,"snappingDistance":10} */
37 private HorizontalLayout mainLayout
;
39 private StatusComposite statusCompositeRight
;
41 private ConceptRelationshipComposite conceptRelationshipComposite
;
43 private StatusComposite statusCompositeLeft
;
45 private StatusComposite primaryStatusComposite
, secondaryStatusComposite
;
47 * The constructor should first build the main layout, set the
48 * composition root and then do any custom initialization.
50 * The constructor will not be automatically regenerated by the
53 public ConceptRelationshipView() {
56 setCompositionRoot(mainLayout
);
58 conceptRelationshipComposite
.setView(this);
59 conceptRelationshipComposite
.setSizeFull();
61 setPrimaryStatusComposite(statusCompositeLeft
.getSelectedClassificationUuid());
63 CdmVaadinSessionUtilities
.getCurrentBasicEventService().register(this);
67 * @see com.vaadin.navigator.View#enter(com.vaadin.navigator.ViewChangeListener.ViewChangeEvent)
70 public void enter(ViewChangeEvent event
) {
71 // TODO Auto-generated method stub
75 public void setPrimaryStatusComposite(UUID scUuid
) {
77 if(statusCompositeLeft
.getSelectedClassificationUuid().equals(scUuid
)) {
78 primaryStatusComposite
= statusCompositeLeft
;
79 secondaryStatusComposite
= statusCompositeRight
;
81 secondaryStatusComposite
= statusCompositeLeft
;
82 primaryStatusComposite
= statusCompositeRight
;
84 secondaryStatusComposite
.clearTaxaTableSelections();
89 * @see eu.etaxonomy.cdm.vaadin.session.IBasicEventListener#onAction(eu.etaxonomy.cdm.vaadin.session.BasicEvent)
92 public void onAction(BasicEvent event
) {
93 if(event
.getEventId().equals(ConceptRelationshipComposite
.UPDATE_START_ID
)) {
94 primaryStatusComposite
.setTaxaTableEnabled(false);
95 secondaryStatusComposite
.setTaxaTableSelectable(false);
97 if(event
.getEventId().equals(ConceptRelationshipComposite
.UPDATE_END_ID
)) {
98 primaryStatusComposite
.setTaxaTableEnabled(true);
99 secondaryStatusComposite
.setTaxaTableSelectable(true);
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);
112 // top-level component properties
116 // statusCompositeLeft
117 statusCompositeLeft
= new StatusComposite();
118 statusCompositeLeft
.setImmediate(false);
119 statusCompositeLeft
.setWidth("-1px");
120 statusCompositeLeft
.setHeight("-1px");
121 mainLayout
.addComponent(statusCompositeLeft
);
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));
132 // statusCompositeRight
133 statusCompositeRight
= new StatusComposite();
134 statusCompositeRight
.setImmediate(false);
135 statusCompositeRight
.setWidth("-1px");
136 statusCompositeRight
.setHeight("-1px");
137 mainLayout
.addComponent(statusCompositeRight
);