Project

General

Profile

Revision 6f9eb1fe

ID6f9eb1fe65ce068f8412bc0583e1773ee74bcc8f
Parent ef0d6020
Child 9f9727cb

Added by Andreas Kohlbecker over 2 years ago

ref #6169 using RegistrationItem in the ListView

View differences:

ide/eclipse/Jetty Launcher/cdm-vaadin - profile.launch
1
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
<launchConfiguration type="net.sourceforge.eclipsejetty.launchConfigurationType">
3
<stringAttribute key="bad_container_name" value="/cdm-vaadin/ide/eclipse/Jetty Launcher/cdm-vaadin-run"/>
4
<intAttribute key="net.sourceforge.eclipsejetty.launcher.acceptor.limit.count" value="8"/>
5
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.acceptor.limit.enabled" value="false"/>
6
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.ajp.enabled" value="false"/>
7
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.annotations.enabled" value="true"/>
8
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.cache.client.enabled" value="true"/>
9
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.cache.server.enabled" value="true"/>
10
<intAttribute key="net.sourceforge.eclipsejetty.launcher.configVersion" value="1"/>
11
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.console.enabled" value="true"/>
12
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.context" value=""/>
13
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.customWebDefaults.enabled" value="false"/>
14
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.customWebDefaults.resource" value=""/>
15
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.gracefulShutdown.override.enabled" value="false"/>
16
<intAttribute key="net.sourceforge.eclipsejetty.launcher.gracefulShutdown.override.timeout" value="1000"/>
17
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.httpsEnabled" value="false"/>
18
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.httpsPort" value="8443"/>
19
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.jetty.config.active.0" value="true"/>
20
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.jetty.config.path.0" value=""/>
21
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.jetty.config.type.0" value="DEFAULT"/>
22
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.jetty.embedded" value="false"/>
23
<intAttribute key="net.sourceforge.eclipsejetty.launcher.jetty.microVersion" value="1"/>
24
<intAttribute key="net.sourceforge.eclipsejetty.launcher.jetty.minorVersion" value="4"/>
25
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.jetty.path" value="${jetty-runtime-9}"/>
26
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.jetty.version" value="JETTY_9_3"/>
27
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.jmx.enabled" value="false"/>
28
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.jndi.enabled" value="false"/>
29
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.jsp.enabled" value="true"/>
30
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.launcher.excludeGenericIds" value=""/>
31
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.launcher.excludeLibs" value=""/>
32
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.launcher.globalGenericIds" value=""/>
33
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.launcher.globalLibs" value=""/>
34
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.launcher.includeGenericIds" value=""/>
35
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.launcher.includeLibs" value=""/>
36
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.launcher.info" value="true"/>
37
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.port" value="8080"/>
38
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.scope.compile.exclude" value="false"/>
39
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.scope.import.exclude" value="true"/>
40
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.scope.none.exclude" value="true"/>
41
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.scope.provided.exclude" value="true"/>
42
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.scope.runtime.exclude" value="false"/>
43
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.scope.system.exclude" value="true"/>
44
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.scope.test.exclude" value="false"/>
45
<intAttribute key="net.sourceforge.eclipsejetty.launcher.threadPool.limit.count" value="16"/>
46
<booleanAttribute key="net.sourceforge.eclipsejetty.launcher.threadPool.limit.enabled" value="false"/>
47
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.webappdir" value="src/main/webapp"/>
48
<stringAttribute key="net.sourceforge.eclipsejetty.launcher.websocket.enabled" value="false"/>
49
<listAttribute key="org.eclipse.debug.ui.favoriteGroups">
50
<listEntry value="org.eclipse.debug.ui.launchGroup.debug"/>
51
<listEntry value="org.eclipse.debug.ui.launchGroup.run"/>
52
</listAttribute>
53
<booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
54
<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="net.sourceforge.eclipsejetty.launcher.JettyLaunchClassPathProvider"/>
55
<stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="net.sourceforge.eclipsejetty.starter.jetty9.Jetty9LauncherMain"/>
56
<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="cdm-vaadin"/>
57
<stringAttribute key="org.eclipse.jdt.launching.VM_ARGUMENTS" value="-Dlog4j.configDebug=false&#10;-Dlog4j.configuration=file:///${system_property:user.home}/.cdmLibrary/log4j.properties&#10;&#10;-agentlib:yjpagent"/>
58
</launchConfiguration>
src/main/java/eu/etaxonomy/cdm/mock/RegistrationService.java
37 37
@Transactional
38 38
public class RegistrationService {
39 39

  
40
    /**
41
     *
42
     */
43
    private static final int SIZE = 5; // FIXME test performance with 50 !!!!!
44

  
40 45
    @Autowired
41 46
    @Qualifier("cdmRepository")
42 47
    private CdmRepository repo;
......
57 62
    protected void init(){
58 63
        if(registrationsByUUID.size() == 0){
59 64
            TransactionStatus tx = repo.startTransaction(true);
60
            while(registrationsByUUID.size() < 20){
61
                List<TaxonNameBase> names = repo.getNameService().list(TaxonNameBase.class, 100, 0, null, null);
65
            int pageIndex = 0;
66
            while(registrationsByUUID.size() < SIZE){
67
                List<TaxonNameBase> names = repo.getNameService().list(TaxonNameBase.class, 100, pageIndex++, null, null);
62 68
                for(TaxonNameBase name : names){
63 69
                    if(name != null && name.getRank() != null && name.getRank().isLower(Rank.SUBFAMILY())){
64 70
                        if(name.getTypeDesignations().size() > minTypeDesignationCount - 1) {
src/main/java/eu/etaxonomy/cdm/vaadin/component/phycobank/RegistrationItem.java
1
/**
2
* Copyright (C) 2017 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.vaadin.component.phycobank;
10

  
11
import org.apache.commons.lang.StringUtils;
12
import org.joda.time.format.ISODateTimeFormat;
13

  
14
import com.vaadin.server.ExternalResource;
15
import com.vaadin.server.FontAwesome;
16
import com.vaadin.ui.Button;
17
import com.vaadin.ui.Label;
18
import com.vaadin.ui.Link;
19

  
20
import eu.etaxonomy.cdm.vaadin.design.phycobank.RegistrationItemDesign;
21
import eu.etaxonomy.cdm.vaadin.presenter.phycobank.RegistrationDTO;
22
import eu.etaxonomy.cdm.vaadin.presenter.phycobank.RegistrationType;
23
import eu.etaxonomy.cdm.vaadin.view.phycobank.RegistrationTypeConverter;
24
import eu.etaxonomy.cdm.vaadin.view.phycobank.RegistrationWorkflowViewBean;
25
import eu.etaxonomy.vaadin.mvp.AbstractView;
26
import eu.etaxonomy.vaadin.ui.navigation.NavigationEvent;
27

  
28
/**
29
 * @author a.kohlbecker
30
 * @since Mar 17, 2017
31
 *
32
 */
33
public class RegistrationItem extends RegistrationItemDesign {
34

  
35
    private static final long serialVersionUID = -211003770452173644L;
36

  
37
    private RegistrationDTO regDto;
38

  
39
    private RegistrationTypeConverter regTypeConverter = new RegistrationTypeConverter();
40

  
41
    private AbstractView<?> parentView;
42

  
43
    /**
44
     *
45
     */
46
    public RegistrationItem(RegistrationDTO item, AbstractView<?> parentView) {
47
        super();
48
        setItem(item, parentView);
49
    }
50

  
51
    public void setItem(RegistrationDTO item, AbstractView<?> parentView){
52
        regDto = item;
53
        this.parentView = parentView;
54
        updateUI();
55
    }
56

  
57

  
58
    /**
59
     *
60
     */
61
    private void updateUI() {
62
        updateTypeStateLabel();
63
        getCitationLabel().setValue(regDto.getCitationString());
64
        getSummaryLabel().setValue(regDto.getSummary());
65
        updateIdentifierLink();
66
        getOpenButton().addClickListener(e -> parentView.getEventBus().publishEvent(new NavigationEvent(
67
                RegistrationWorkflowViewBean.NAME,
68
                RegistrationWorkflowViewBean.ACTION_EDIT,
69
                regDto.getSpecificIdentifier().toString()
70
                )));
71
        updateDateLabels();
72
    }
73

  
74

  
75
    /**
76
     *
77
     */
78
    private void updateTypeStateLabel() {
79

  
80
        FontAwesome icon;
81
        if(regDto.getRegistrationType().equals(RegistrationType.NAME)) {
82
            icon = FontAwesome.TAG;
83
        } else if(regDto.getRegistrationType().equals(RegistrationType.TYPIFICATION)) {
84
            icon = FontAwesome.TAGS;
85
        } else {
86
            icon = FontAwesome.WARNING;
87
        }
88
        typeStateLabel.setIcon(icon);
89
        typeStateLabel.setValue(StringUtils.capitalize((regDto.getStatus().name().toLowerCase())));
90
        typeStateLabel.addStyleName("status-" + regDto.getStatus().name());
91
    }
92

  
93
    /**
94
     *
95
     */
96
    private void updateIdentifierLink() {
97
        getIdentifierLink().setResource(new ExternalResource(regDto.getRegistrationId()));
98
        //TODO make responsive and use specificIdetifier in case the space gets too narrow
99
        getIdentifierLink().setCaption(regDto.getRegistrationId());
100
    }
101

  
102
    /**
103
     *
104
     */
105
    private void updateDateLabels() {
106
        getCreatedLabel().setDescription(regDto.getCreated().toString(ISODateTimeFormat.yearMonthDay()));
107
        if(regDto.getRegistrationDate() != null){
108
            getPublishedLabel().setDescription(regDto.getRegistrationDate().toString(ISODateTimeFormat.yearMonthDay()));
109
        } else {
110
            getPublishedLabel().setVisible(false);
111
        }
112

  
113
    }
114

  
115
    /* ====== RegistrationItemDesign Getters ====== */
116
    /**
117
     * @return the typeStateLabel
118
     */
119
    public Label getTypeStateLabel() {
120
        return typeStateLabel;
121
    }
122

  
123
    /**
124
     * @return the identifierLink
125
     */
126
    public Link getIdentifierLink() {
127
        return identifierLink;
128
    }
129

  
130
    /**
131
     * @return the citationLabel
132
     */
133
    public Label getCitationLabel() {
134
        return citationLabel;
135
    }
136

  
137
    /**
138
     * @return the summaryLabel
139
     */
140
    public Label getSummaryLabel() {
141
        return summaryLabel;
142
    }
143

  
144
    /**
145
     * @return the blockedByButton
146
     */
147
    public Button getBlockedByButton() {
148
        return blockedByButton;
149
    }
150

  
151
    /**
152
     * @return the messageButton
153
     */
154
    public Button getMessageButton() {
155
        return messageButton;
156
    }
157

  
158
    /**
159
     * @return the openButton
160
     */
161
    public Button getOpenButton() {
162
        return openButton;
163
    }
164

  
165
    /**
166
     * @return the createdLabel
167
     */
168
    public Label getCreatedLabel() {
169
        return createdLabel;
170
    }
171

  
172
    /**
173
     * @return the publishedLabel
174
     */
175
    public Label getPublishedLabel() {
176
        return publishedLabel;
177
    }
178

  
179
   /* --------------------------------------- */
180

  
181
}
src/main/java/eu/etaxonomy/cdm/vaadin/design/phycobank/RegistrationItemDesign.java
8 8
import com.vaadin.ui.Link;
9 9
import com.vaadin.ui.declarative.Design;
10 10

  
11
/** 
11
/**
12 12
 * !! DO NOT EDIT THIS FILE !!
13
 * 
13
 *
14 14
 * This class is generated by Vaadin Designer and will be overwritten.
15
 * 
15
 *
16 16
 * Please make a subclass with logic and additional interfaces as needed,
17 17
 * e.g class LoginView extends LoginDesign implements View { }
18 18
 */
......
28 28
    protected Button messageButton;
29 29
    protected Button openButton;
30 30
    protected Label createdLabel;
31
    protected Label publishedLabel1;
31
    protected Label publishedLabel;
32 32

  
33 33
    public RegistrationItemDesign() {
34 34
        Design.read(this);
src/main/java/eu/etaxonomy/cdm/vaadin/presenter/phycobank/ListPresenter.java
34 34
    @Override
35 35
    public void onViewEnter() {
36 36
        super.onViewEnter();
37
        getView().populateTable(listRegistrations());
37
        //getView().populateTable(listRegistrations());
38
        getView().populateList(listRegistrations());
38 39
    }
39 40

  
40 41
    /**
src/main/java/eu/etaxonomy/cdm/vaadin/view/phycobank/ListView.java
26 26
     */
27 27
    void populateTable(Collection<RegistrationDTO> registrations);
28 28

  
29
    /**
30
     * @param page
31
     */
32
    void populateList(Collection<RegistrationDTO> registrations);
33

  
29 34

  
30 35
}
src/main/java/eu/etaxonomy/cdm/vaadin/view/phycobank/ListViewBean.java
9 9
package eu.etaxonomy.cdm.vaadin.view.phycobank;
10 10

  
11 11
import java.util.Collection;
12
import java.util.Locale;
13 12

  
14 13
import org.springframework.beans.factory.annotation.Autowired;
15 14

  
......
17 16
import com.vaadin.data.util.BeanContainer;
18 17
import com.vaadin.data.util.GeneratedPropertyContainer;
19 18
import com.vaadin.data.util.PropertyValueGenerator;
20
import com.vaadin.data.util.converter.Converter;
21 19
import com.vaadin.navigator.View;
22 20
import com.vaadin.navigator.ViewChangeListener.ViewChangeEvent;
23
import com.vaadin.server.FontAwesome;
21
import com.vaadin.shared.ui.MarginInfo;
24 22
import com.vaadin.shared.ui.grid.HeightMode;
25 23
import com.vaadin.spring.annotation.SpringView;
26 24
import com.vaadin.ui.Alignment;
......
28 26
import com.vaadin.ui.Grid.Column;
29 27
import com.vaadin.ui.Grid.SelectionMode;
30 28
import com.vaadin.ui.Label;
29
import com.vaadin.ui.Panel;
31 30
import com.vaadin.ui.VerticalLayout;
32 31
import com.vaadin.ui.renderers.ButtonRenderer;
33 32
import com.vaadin.ui.renderers.DateRenderer;
34 33
import com.vaadin.ui.renderers.HtmlRenderer;
35 34
import com.vaadin.ui.themes.ValoTheme;
36 35

  
36
import eu.etaxonomy.cdm.vaadin.component.phycobank.RegistrationItem;
37 37
import eu.etaxonomy.cdm.vaadin.presenter.phycobank.ListPresenter;
38 38
import eu.etaxonomy.cdm.vaadin.presenter.phycobank.RegistrationDTO;
39
import eu.etaxonomy.cdm.vaadin.presenter.phycobank.RegistrationType;
40 39
import eu.etaxonomy.cdm.vaadin.util.JodaDateTimeConverter;
41 40
import eu.etaxonomy.cdm.vaadin.util.UrlStringConverter;
42 41
import eu.etaxonomy.vaadin.mvp.AbstractView;
......
50 49
@SpringView(name=ListViewBean.NAME)
51 50
public class ListViewBean extends AbstractView<ListPresenter> implements ListView, View {
52 51

  
53
    /**
54
     * @author a.kohlbecker
55
     * @since Mar 7, 2017
56
     *
57
     */
58
    protected final class RegistrationTypeConverter implements Converter<String, RegistrationType> {
59
        @Override
60
        public RegistrationType convertToModel(String value, Class<? extends RegistrationType> targetType,
61
                Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException {
62
            // not implemented
63
            return null;
64
        }
65

  
66
        @Override
67
        public String convertToPresentation(RegistrationType value, Class<? extends String> targetType,
68
                Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException {
69
            if(value.equals(RegistrationType.NAME)) {
70
                return FontAwesome.TAG.getHtml();
71
            }
72
            if(value.equals(RegistrationType.TYPIFICATION)) {
73
                return FontAwesome.TAGS.getHtml();
74
            }
75
            return FontAwesome.WARNING.getHtml();
76
        }
77

  
78
        @Override
79
        public Class<RegistrationType> getModelType() {
80
            return RegistrationType.class;
81
        }
82

  
83
        @Override
84
        public Class<String> getPresentationType() {
85
            return String.class;
86
        }
87
    }
88 52
    private static final long serialVersionUID = 3543300933072824713L;
89 53

  
90 54
    public static final String NAME = "list";
......
93 57

  
94 58
    private Grid grid;
95 59

  
60
    private Panel panel;
61

  
96 62
    public ListViewBean() {
97 63
        layout = new VerticalLayout();
98 64
        layout.setSpacing(true);
......
109 75
        layout.addComponent(hint);
110 76
        layout.setComponentAlignment(hint, Alignment.MIDDLE_CENTER);
111 77

  
112
        grid = buildGrid();
113
        layout.addComponent(grid);
114
        layout.setExpandRatio(grid, 1);
78
//        grid = buildGrid();
79
//        layout.addComponent(grid);
80
//        layout.setExpandRatio(grid, 1);
81

  
82
        buildPanel();
115 83

  
116 84
        setCompositionRoot(layout);
117 85
        this.setSizeFull();
118 86
    }
119 87

  
88
    /**
89
     *
90
     */
91
    private void buildPanel() {
92
        panel = new Panel();
93
        panel.setSizeFull();
94
        panel.setId("registration-list");
95
        layout.addComponent(panel);
96
        layout.setExpandRatio(panel, 1);
97
    }
98

  
120 99
    private Grid buildGrid() {
121 100
        Grid grid = new Grid();
122 101
        grid.setSizeFull();
......
205 184
    }
206 185

  
207 186
    /**
187
     * {@inheritDoc}
188
     */
189
    @Override
190
    public void populateList(Collection<RegistrationDTO> registrations) {
191
        VerticalLayout list = new VerticalLayout();
192
        list.setMargin(new MarginInfo(false, true));
193
        list.setSpacing(true);
194
        for(RegistrationDTO regDto : registrations) {
195

  
196
            list.addComponent(new RegistrationItem(regDto, this));
197
            if(list.getComponentCount() > 10){
198
                break;
199
            }
200
        }
201
        panel.setContent(list);
202

  
203
    }
204

  
205
    /**
208 206
     * @param registrationItems
209 207
     * @return
210 208
     */
......
228 226
        return gpContainer;
229 227
    }
230 228

  
229

  
230

  
231 231
}
src/main/java/eu/etaxonomy/cdm/vaadin/view/phycobank/RegistrationTypeConverter.java
1
/**
2
* Copyright (C) 2017 EDIT
3
* European Distributed Institute of Taxonomy
4
* http://www.e-taxonomy.eu
5
*
6
* The contents of this file are subject to the Mozilla Public License Version 1.1
7
* See LICENSE.TXT at the top of this package for the full license terms.
8
*/
9
package eu.etaxonomy.cdm.vaadin.view.phycobank;
10

  
11
import java.util.Locale;
12

  
13
import com.vaadin.data.util.converter.Converter;
14
import com.vaadin.server.FontAwesome;
15

  
16
import eu.etaxonomy.cdm.vaadin.presenter.phycobank.RegistrationType;
17

  
18
/**
19
 * @author a.kohlbecker
20
 * @since Mar 7, 2017
21
 *
22
 */
23
public class RegistrationTypeConverter implements Converter<String, RegistrationType> {
24
    @Override
25
    public RegistrationType convertToModel(String value, Class<? extends RegistrationType> targetType,
26
            Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException {
27
        // not implemented
28
        return null;
29
    }
30

  
31
    @Override
32
    public String convertToPresentation(RegistrationType value, Class<? extends String> targetType,
33
            Locale locale) throws com.vaadin.data.util.converter.Converter.ConversionException {
34
        if(value.equals(RegistrationType.NAME)) {
35
            return FontAwesome.TAG.getHtml();
36
        }
37
        if(value.equals(RegistrationType.TYPIFICATION)) {
38
            return FontAwesome.TAGS.getHtml();
39
        }
40
        return FontAwesome.WARNING.getHtml();
41
    }
42

  
43
    @Override
44
    public Class<RegistrationType> getModelType() {
45
        return RegistrationType.class;
46
    }
47

  
48
    @Override
49
    public Class<String> getPresentationType() {
50
        return String.class;
51
    }
52
}
src/main/java/eu/etaxonomy/vaadin/mvp/AbstractView.java
66 66
	public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
67 67
		this.applicationContext = applicationContext;
68 68
	}
69

  
70
	public ApplicationEventPublisher getEventBus(){
71
	    return eventBus;
72
	}
69 73
}
src/main/resources/eu/etaxonomy/cdm/vaadin/design/phycobank/RegistrationItemDesign.html
6 6
  <meta name="vaadin-version" content="7.7.0">
7 7
 </head>
8 8
 <body>
9
  <vaadin-horizontal-layout width-full>
9
  <vaadin-horizontal-layout style-name="registration-item" width-full>
10 10
   <vaadin-vertical-layout :expand>
11 11
    <vaadin-horizontal-layout spacing width-full height="34px" :middle>
12 12
     <vaadin-label icon="fonticon://FontAwesome/f02b" style-name="label-nowrap" size-auto plain-text _id="typeStateLabel">
......
17 17
    <vaadin-label plain-text _id="citationLabel">
18 18
      Publication citation string 
19 19
    </vaadin-label>
20
    <vaadin-label description="Registration summary" plain-text _id="summaryLabel">
20
    <vaadin-label plain-text _id="summaryLabel">
21 21
      Publication citation string possibly spanning multiple lines 
22 22
    </vaadin-label>
23 23
   </vaadin-vertical-layout>
......
28 28
     <vaadin-button icon="fonticon://FontAwesome/f085" style-name="tiny primary" plain-text _id="openButton"></vaadin-button>
29 29
    </vaadin-css-layout>
30 30
    <vaadin-vertical-layout size-full :bottom :right>
31
     <vaadin-label size-auto plain-text _id="createdLabel" :bottom :right :expand>
32
       Created: 12.12.2012 
31
     <vaadin-label caption="Created" style-name="label-nowrap" size-auto plain-text _id="createdLabel" :bottom :right>
32
       12.12.2012 
33 33
     </vaadin-label>
34
     <vaadin-label size-auto plain-text _id="publishedLabel1" :bottom :right>
35
       Published: 12.12.2012 
34
     <vaadin-label caption="Published" style-name="label-nowrap" size-auto plain-text _id="publishedLabel" :bottom :right>
35
       12.12.2012 
36 36
     </vaadin-label>
37 37
    </vaadin-vertical-layout>
38 38
   </vaadin-vertical-layout>
src/main/webapp/VAADIN/themes/edit-valo/edit-valo.scss
132 132
    $workflow-caption-font-size: $workflow-icon-size * $workflow-caption-shrink;
133 133
        
134 134
    .workflow {
135
        
136 135
        .steps {
137 136
            z-index: 10;
138 137
            
......
144 143
                }
145 144
            }
146 145
         }
147
         
148 146
         .timeline {
149 147
            display: block;
150 148
            position: relative;
......
182 180

  
183 181
    // --------------------------------------------------- //
184 182
    
185
    
183
    .registration-item {
184
        border-top: valo-border($border: $v-border, $color: $v-background-color, $strength: 0.7);
185
        padding-top: 4px; // avoid button group to overlap with border
186
    }
186 187
    
187 188
    #registration-list {
189
        // for grid rows
188 190
        .status-REJECTED {
189 191
            td.registrationType, td.status {
190 192
                color: $status-rejected-color;
......
210 212
                color: $status-ready-color;
211 213
            }
212 214
        }
215
        // for RegistrationItems
216
        .v-slot-status-REJECTED {
217
            color: $status-rejected-color;
218
        }
219
        .v-slot-status-CURATION {
220
            color: $status-curation-color;
221
        }
222
        .v-slot-status-PREPARATION {
223
            color: $status-preparation-color;
224
        }
225
        .v-slot-status-PUBLISHED {
226
            color: $status-published-color;
227
        }
228
        .v-slot-status-READY {
229
            color: $status-ready-color;
230
        }
213 231
    }
214 232

  
215 233

  

Also available in: Unified diff

Add picture from clipboard (Maximum size: 40 MB)