Refactoring of selection elements. Additional minor refactoring. Fixed a bug with...
[taxeditor.git] / eu.etaxonomy.taxeditor.store / src / main / java / eu / etaxonomy / taxeditor / ui / section / supplemental / VersionElement.java
1 // $Id$
2 /**
3 * Copyright (C) 2007 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
11 package eu.etaxonomy.taxeditor.ui.section.supplemental;
12
13 import org.eclipse.swt.widgets.Label;
14 import org.joda.time.DateTime;
15
16 import eu.etaxonomy.cdm.common.CdmUtils;
17 import eu.etaxonomy.cdm.model.common.User;
18 import eu.etaxonomy.cdm.model.common.VersionableEntity;
19 import eu.etaxonomy.taxeditor.preference.PreferencesUtil;
20 import eu.etaxonomy.taxeditor.ui.element.AbstractCdmFormElement;
21 import eu.etaxonomy.taxeditor.ui.element.CdmFormFactory;
22 import eu.etaxonomy.taxeditor.ui.element.ICdmFormElement;
23 import eu.etaxonomy.taxeditor.ui.element.IEntityElement;
24 import eu.etaxonomy.taxeditor.ui.element.LayoutConstants;
25 import eu.etaxonomy.taxeditor.ui.element.TextWithLabelElement;
26
27 /**
28 * <p>VersionElement class.</p>
29 *
30 * @author n.hoffmann
31 * @created Nov 5, 2009
32 * @version 1.0
33 */
34 public class VersionElement extends AbstractCdmFormElement implements IEntityElement<VersionableEntity> {
35
36 private Label label_created;
37 private Label label_updated;
38
39
40 private VersionableEntity entity;
41
42 /**
43 * <p>Constructor for VersionElement.</p>
44 *
45 * @param style a int.
46 * @param formFactory a {@link eu.etaxonomy.taxeditor.ui.element.CdmFormFactory} object.
47 * @param parentElement a {@link eu.etaxonomy.taxeditor.ui.element.ICdmFormElement} object.
48 * @param entity a {@link eu.etaxonomy.cdm.model.common.VersionableEntity} object.
49 */
50 public VersionElement(CdmFormFactory formFactory, ICdmFormElement parentElement, VersionableEntity entity, int style) {
51 super(formFactory, parentElement);
52
53 label_created = formFactory.createLabel(getLayoutComposite(), null, style);
54 label_created.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
55
56 label_updated = formFactory.createLabel(getLayoutComposite(), null, style);
57 label_updated.setLayoutData(LayoutConstants.FILL_HORIZONTALLY());
58
59
60 setEntity(entity);
61 }
62
63 /**
64 * <p>Setter for the field <code>entity</code>.</p>
65 *
66 * @param entity a {@link eu.etaxonomy.cdm.model.common.VersionableEntity} object.
67 */
68 public void setEntity(VersionableEntity entity){
69
70 this.entity = entity;
71
72 String createdString = "";
73 String updatedString = "";
74
75 if(entity != null){
76 createdString = "Created "
77 + dateFormat(entity.getCreated())
78 + " by " + userFormat(entity.getCreatedBy());
79 updatedString = "Updated "
80 + dateFormat(entity.getUpdated())
81 + " by " + userFormat(entity.getUpdatedBy());
82 }
83
84 label_created.setText(createdString);
85 label_updated.setText(updatedString);
86 }
87
88 private String dateFormat(DateTime dateTime){
89 if(dateTime == null){
90 return "";
91 }
92 return CdmUtils.Nz(dateTime.toString(PreferencesUtil.getDateFormatPattern()));
93 }
94
95 private String userFormat(User user){
96 if(user == null){
97 return "";
98 }
99 // TODO agree on what to display username or real name or even more from shibboleth
100 return CdmUtils.Nz(user.getUsername());
101 }
102
103 /**
104 * <p>Getter for the field <code>entity</code>.</p>
105 *
106 * @return a {@link eu.etaxonomy.cdm.model.common.VersionableEntity} object.
107 */
108 public VersionableEntity getEntity() {
109 return entity;
110 }
111
112 @Override
113 public void setSelected(boolean selected) {
114 // this entity element is not likely to get selected
115 }
116 }