litesoft
@ 965
litesoft / trunk / GWT_Sandbox / FormEngine / src / com / temp / foundation / client / widget / PageHeader.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
package com.temp.foundation.client.widget; import com.google.gwt.event.dom.client.*; import com.google.gwt.user.client.ui.*; import com.temp.common.shared.utils.*; public class PageHeader extends AbstractHorizontalLabeledPageWidget { private static final String PAGE_HEADER_STYLE_NAME = "page-header"; private static final String TITLE_STYLE_NAME = "page-header-title"; public static final String DESCRIPTION_STYLE_NAME = "section-description"; private final VerticalPanel overallVerticalPanel = new VerticalPanel(); private final VerticalPanel leftPanel = new VerticalPanel(); private final VerticalPanel rightPanel = new VerticalPanel(); private Label descriptionLabel; private Label bottomDescriptionLabel; public PageHeader() { super( PAGE_HEADER_STYLE_NAME, TITLE_STYLE_NAME ); overallVerticalPanel.setWidth( "100%" ); horizontalPanel.add( overallVerticalPanel ); HorizontalPanel innerHorizontalPanel = new HorizontalPanel(); overallVerticalPanel.add( innerHorizontalPanel ); innerHorizontalPanel.add( leftPanel ); innerHorizontalPanel.add( new LeftRightSiblings( false ) ); innerHorizontalPanel.add( rightPanel ); leftPanel.add( titleLabel ); } public void setDescription( String description ) { descriptionLabel = setLabelAsDescription( leftPanel, descriptionLabel, description ); } public void setBottomDescription( String description ) { bottomDescriptionLabel = setLabelAsDescription( overallVerticalPanel, bottomDescriptionLabel, description ); } public VerticalPanel getLeftPanel() { return leftPanel; } public VerticalPanel getRightPanel() { return rightPanel; } public CompositeButton addButton( String name, ClickHandler clickHandler ) { return addButton( new OurPushButton( name, clickHandler ) ); } public CompositeButton addButton( CompositeButton button ) { if ( rightPanel.getWidgetCount() > 0 ) { rightPanel.add( new Spacer() ); } rightPanel.add( button ); return button; } /** * Since "some" of the Browsers will treat a "table cell" that contains an * empty DIV (label) as if it does not implicitly get a 1em space when all * it contains is an empty label. So if the description is null or empty, * then the label must be removed! */ private static Label setLabelAsDescription( VerticalPanel parent, Label label, String description ) { description = StringUtils.noEmpty( description ); if ( description == null ) { return removeDescriptionLabel( parent, label ); } label = insureDescriptionLabel( parent, label ); label.setText( description ); return label; } private static Label insureDescriptionLabel( VerticalPanel parent, Label label ) { if ( label == null ) { label = new Label(); label.setStyleName( DESCRIPTION_STYLE_NAME ); parent.add( label ); } return label; } private static Label removeDescriptionLabel( VerticalPanel parent, Label label ) { if ( label != null ) { parent.remove( label ); } return null; } } |
Commits for litesoft/trunk/GWT_Sandbox/FormEngine/src/com/temp/foundation/client/widget/PageHeader.java
Revision | Author | Commited | Message |
---|---|---|---|
965 | GeorgeS | Fri 01 Aug, 2014 03:20:35 +0000 | ! |