Insert helpLink next to the action buttons on the right side

Signed-off-by: Melanie Retter <melanie.retter@bosch-si.com>
This commit is contained in:
Melanie Retter
2016-05-25 13:28:58 +02:00
parent 96baddeaee
commit 6c7f0482b4
11 changed files with 42 additions and 135 deletions

View File

@@ -215,7 +215,7 @@ public class SoftwareModuleAddUpdateWindow extends CustomComponent implements Se
/* add main layout to the window */ /* add main layout to the window */
window = SPUIComponentProvider.getWindow(i18n.get("upload.caption.add.new.swmodule"), null, window = SPUIComponentProvider.getWindow(i18n.get("upload.caption.add.new.swmodule"), null,
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> save(), event -> closeThisWindow()); SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> save(), event -> closeThisWindow(), null);
window.removeStyleName("actionButtonsMargin"); window.removeStyleName("actionButtonsMargin");
nameTextField.focus(); nameTextField.focus();
} }

View File

@@ -105,7 +105,7 @@ public class CreateUpdateSoftwareTypeLayout extends CreateUpdateTypeLayout
public void createWindow() { public void createWindow() {
reset(); reset();
window = SPUIComponentProvider.getWindow(i18n.get("caption.add.type"), null, window = SPUIComponentProvider.getWindow(i18n.get("caption.add.type"), null,
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> save(event), event -> discard(event)); SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> save(event), event -> discard(event), null);
} }
/** /**

View File

@@ -38,6 +38,8 @@ public class CommonDialogWindow extends Window {
private Button cancelButton; private Button cancelButton;
private HorizontalLayout buttonsLayout;
public CommonDialogWindow() { public CommonDialogWindow() {
init(null, null); init(null, null);
@@ -60,16 +62,13 @@ public class CommonDialogWindow extends Window {
((AbstractOrderedLayout) content).setMargin(true); ((AbstractOrderedLayout) content).setMargin(true);
} }
if (StringUtils.isNotEmpty(helpLink)) {
mainLayout.addComponent(createLinkToHelp(helpLink));
}
if (null != content) { if (null != content) {
mainLayout.addComponent(content); mainLayout.addComponent(content);
} }
final HorizontalLayout buttonLayout = createActionButtonsLayout(saveButtonClickListener, final HorizontalLayout buttonLayout = createActionButtonsLayout(saveButtonClickListener,
cancelButtonClickListener); cancelButtonClickListener);
mainLayout.addComponent(buttonLayout); mainLayout.addComponent(buttonLayout);
mainLayout.setComponentAlignment(buttonLayout, Alignment.MIDDLE_CENTER); mainLayout.setComponentAlignment(buttonLayout, Alignment.TOP_CENTER);
setCaption(caption); setCaption(caption);
setContent(mainLayout); setContent(mainLayout);
@@ -81,31 +80,47 @@ public class CommonDialogWindow extends Window {
private HorizontalLayout createActionButtonsLayout(final ClickListener saveButtonClickListener, private HorizontalLayout createActionButtonsLayout(final ClickListener saveButtonClickListener,
final ClickListener cancelButtonClickListener) { final ClickListener cancelButtonClickListener) {
final HorizontalLayout hlayout = new HorizontalLayout(); buttonsLayout = new HorizontalLayout();
hlayout.setSpacing(true); buttonsLayout.setSizeFull();
buttonsLayout.setSpacing(true);
saveButton = SPUIComponentProvider.getButton(SPUIComponetIdProvider.SYSTEM_CONFIGURATION_SAVE, "save", "", "", saveButton = SPUIComponentProvider.getButton(SPUIComponetIdProvider.SYSTEM_CONFIGURATION_SAVE, "save", "", "",
true, FontAwesome.SAVE, SPUIButtonStyleBorderWithIcon.class); true, FontAwesome.SAVE, SPUIButtonStyleBorderWithIcon.class);
saveButton.setSizeUndefined();
if (null != saveButtonClickListener) { if (null != saveButtonClickListener) {
saveButton.addClickListener(saveButtonClickListener); saveButton.addClickListener(saveButtonClickListener);
} else { } else {
LOG.warn("No ClickListener for saveButton specified"); LOG.warn("No ClickListener for saveButton specified");
} }
hlayout.addComponent(saveButton); buttonsLayout.addComponent(saveButton);
hlayout.setComponentAlignment(saveButton, Alignment.MIDDLE_LEFT); buttonsLayout.setComponentAlignment(saveButton, Alignment.MIDDLE_RIGHT);
buttonsLayout.setExpandRatio(saveButton, 1.0F);
cancelButton = SPUIComponentProvider.getButton(SPUIComponetIdProvider.SYSTEM_CONFIGURATION_CANCEL, "cancel", "", cancelButton = SPUIComponentProvider.getButton(SPUIComponetIdProvider.SYSTEM_CONFIGURATION_CANCEL, "cancel", "",
"", true, FontAwesome.TIMES, SPUIButtonStyleBorderWithIcon.class); "", true, FontAwesome.TIMES, SPUIButtonStyleBorderWithIcon.class);
cancelButton.setSizeUndefined();
if (null != cancelButtonClickListener) { if (null != cancelButtonClickListener) {
cancelButton.addClickListener(cancelButtonClickListener); cancelButton.addClickListener(cancelButtonClickListener);
} else { } else {
LOG.warn("No ClickListener for cancelButton specified"); LOG.warn("No ClickListener for cancelButton specified");
} }
hlayout.addComponent(cancelButton); buttonsLayout.addComponent(cancelButton);
hlayout.setComponentAlignment(cancelButton, Alignment.MIDDLE_RIGHT); buttonsLayout.setComponentAlignment(cancelButton, Alignment.MIDDLE_LEFT);
hlayout.addStyleName("actionButtonsMargin"); buttonsLayout.setExpandRatio(cancelButton, 1.0F);
buttonsLayout.addStyleName("actionButtonsMargin");
return hlayout; addHelpLink();
return buttonsLayout;
}
private void addHelpLink() {
if (StringUtils.isNotEmpty(helpLink)) {
final Link helpLinkComponent = SPUIComponentProvider.getHelpLink(helpLink);
buttonsLayout.addComponent(helpLinkComponent);
buttonsLayout.setComponentAlignment(helpLinkComponent, Alignment.MIDDLE_RIGHT);
}
} }
public void setSaveButtonEnabled(final boolean enabled) { public void setSaveButtonEnabled(final boolean enabled) {
@@ -116,8 +131,4 @@ public class CommonDialogWindow extends Window {
cancelButton.setEnabled(enabled); cancelButton.setEnabled(enabled);
} }
private Link createLinkToHelp(final String link) {
return SPUIComponentProvider.getHelpLink(link);
}
} }

View File

@@ -1,69 +0,0 @@
/**
* Copyright (c) 2015 Bosch Software Innovations GmbH and others.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*/
package org.eclipse.hawkbit.ui.common;
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Link;
/**
*
* Helper class that provides the help icon layout in the right upper corner of
* a popup window
*
*/
public class PopupWindowHelp extends HorizontalLayout {
private static final long serialVersionUID = 5377482512908004826L;
private Link linkToHelp;
/**
* Provides a horizontalLayout with a help icon in the right corner. The
* layout is shown by default.
*
* @param link
* link to the help page in the wiki or on github
*/
public PopupWindowHelp(final String link) {
createLinkToHelp(link);
init();
}
/**
* Provides a horizontalLayout with a help icon in the right corner. The
* layout is shown by default. The visibility of the layout can be set. If
* visibility is false the layout is not shown and the space is not
* reserved.
*
* @param link
* link to the help page in the wiki or on github
* @param visible
* false == layout is not shown
*/
public PopupWindowHelp(final String link, final boolean visible) {
createLinkToHelp(link);
init();
setVisible(visible);
}
public void init() {
setSizeFull();
addComponent(linkToHelp);
setComponentAlignment(linkToHelp, Alignment.MIDDLE_RIGHT);
addStyleName("window-style");
}
private void createLinkToHelp(final String link) {
linkToHelp = SPUIComponentProvider.getHelpLink(link);
}
}

View File

@@ -153,9 +153,9 @@ public final class SPUIComponentProvider {
*/ */
public static CommonDialogWindow getWindow(final String caption, final String id, final String type, public static CommonDialogWindow getWindow(final String caption, final String id, final String type,
final Component content, final ClickListener saveButtonClickListener, final Component content, final ClickListener saveButtonClickListener,
final ClickListener cancelButtonClickListener) { final ClickListener cancelButtonClickListener, final String helpLink) {
return SPUIWindowDecorator.getDeocratedWindow(caption, id, type, content, saveButtonClickListener, return SPUIWindowDecorator.getDeocratedWindow(caption, id, type, content, saveButtonClickListener,
cancelButtonClickListener); cancelButtonClickListener, helpLink);
} }
/** /**

View File

@@ -44,9 +44,9 @@ public final class SPUIWindowDecorator {
*/ */
public static CommonDialogWindow getDeocratedWindow(final String caption, final String id, final String type, public static CommonDialogWindow getDeocratedWindow(final String caption, final String id, final String type,
final Component content, final ClickListener saveButtonClickListener, final Component content, final ClickListener saveButtonClickListener,
final ClickListener CancelButtonClickListener) { final ClickListener CancelButtonClickListener, final String helpLink) {
// TODO helpLink // TODO helpLink
final CommonDialogWindow window = new CommonDialogWindow(caption, content, null, saveButtonClickListener, final CommonDialogWindow window = new CommonDialogWindow(caption, content, helpLink, saveButtonClickListener,
CancelButtonClickListener); CancelButtonClickListener);
if (null != id) { if (null != id) {
window.setId(id); window.setId(id);

View File

@@ -16,7 +16,6 @@ import org.eclipse.hawkbit.repository.DistributionSetRepository;
import org.eclipse.hawkbit.repository.SoftwareManagement; import org.eclipse.hawkbit.repository.SoftwareManagement;
import org.eclipse.hawkbit.repository.model.DistributionSetType; import org.eclipse.hawkbit.repository.model.DistributionSetType;
import org.eclipse.hawkbit.repository.model.SoftwareModuleType; import org.eclipse.hawkbit.repository.model.SoftwareModuleType;
import org.eclipse.hawkbit.ui.UiProperties;
import org.eclipse.hawkbit.ui.colorPicker.ColorPickerConstants; import org.eclipse.hawkbit.ui.colorPicker.ColorPickerConstants;
import org.eclipse.hawkbit.ui.colorPicker.ColorPickerHelper; import org.eclipse.hawkbit.ui.colorPicker.ColorPickerHelper;
import org.eclipse.hawkbit.ui.common.DistributionSetTypeBeanQuery; import org.eclipse.hawkbit.ui.common.DistributionSetTypeBeanQuery;
@@ -624,7 +623,7 @@ public class CreateUpdateDistSetTypeLayout extends CreateUpdateTypeLayout
public void createWindow() { public void createWindow() {
reset(); reset();
window = SPUIComponentProvider.getWindow(i18n.get("caption.add.type"), null, window = SPUIComponentProvider.getWindow(i18n.get("caption.add.type"), null,
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> save(event), event -> discard(event)); SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> save(event), event -> discard(event), null);
} }
@Override @Override

View File

@@ -110,7 +110,7 @@ public abstract class CreateUpdateTagLayout extends CustomComponent implements C
protected void createWindow() { protected void createWindow() {
reset(); reset();
setWindow(SPUIComponentProvider.getWindow(i18n.get("caption.add.tag"), null, setWindow(SPUIComponentProvider.getWindow(i18n.get("caption.add.tag"), null,
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> save(event), event -> discard(event))); SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> save(event), event -> discard(event), null));
} }
/** /**

View File

@@ -133,6 +133,7 @@ public class DistributionAddUpdateWindowLayout extends VerticalLayout {
* (controller Id, name & description) and action buttons layout * (controller Id, name & description) and action buttons layout
*/ */
setSpacing(Boolean.TRUE); setSpacing(Boolean.TRUE);
setMargin(Boolean.FALSE);
addStyleName("lay-color"); addStyleName("lay-color");
setSizeUndefined(); setSizeUndefined();
@@ -184,7 +185,6 @@ public class DistributionAddUpdateWindowLayout extends VerticalLayout {
"dist-checkbox-style", null, false, ""); "dist-checkbox-style", null, false, "");
reqMigStepCheckbox.addStyleName(ValoTheme.CHECKBOX_SMALL); reqMigStepCheckbox.addStyleName(ValoTheme.CHECKBOX_SMALL);
reqMigStepCheckbox.setId(SPUIComponetIdProvider.DIST_ADD_MIGRATION_CHECK); reqMigStepCheckbox.setId(SPUIComponetIdProvider.DIST_ADD_MIGRATION_CHECK);
} }
/** /**
@@ -516,8 +516,8 @@ public class DistributionAddUpdateWindowLayout extends VerticalLayout {
populateRequiredComponents(); populateRequiredComponents();
resetComponents(); resetComponents();
addDistributionWindow = SPUIComponentProvider.getWindow(i18n.get("caption.add.new.dist"), null, addDistributionWindow = SPUIComponentProvider.getWindow(i18n.get("caption.add.new.dist"), null,
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveDistribution(), SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveDistribution(), event -> discardDistribution(),
event -> discardDistribution()); null);
addDistributionWindow.removeStyleName("actionButtonsMargin"); addDistributionWindow.removeStyleName("actionButtonsMargin");
return addDistributionWindow; return addDistributionWindow;

View File

@@ -14,12 +14,9 @@ import java.util.Set;
import org.eclipse.hawkbit.repository.TargetManagement; import org.eclipse.hawkbit.repository.TargetManagement;
import org.eclipse.hawkbit.repository.model.Target; import org.eclipse.hawkbit.repository.model.Target;
import org.eclipse.hawkbit.repository.model.TargetIdName; import org.eclipse.hawkbit.repository.model.TargetIdName;
import org.eclipse.hawkbit.ui.UiProperties;
import org.eclipse.hawkbit.ui.common.CommonDialogWindow; import org.eclipse.hawkbit.ui.common.CommonDialogWindow;
import org.eclipse.hawkbit.ui.common.PopupWindowHelp;
import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType; import org.eclipse.hawkbit.ui.common.table.BaseEntityEventType;
import org.eclipse.hawkbit.ui.components.SPUIComponentProvider; import org.eclipse.hawkbit.ui.components.SPUIComponentProvider;
import org.eclipse.hawkbit.ui.decorators.SPUIButtonStyleSmallNoBorder;
import org.eclipse.hawkbit.ui.management.event.DragEvent; import org.eclipse.hawkbit.ui.management.event.DragEvent;
import org.eclipse.hawkbit.ui.management.event.TargetTableEvent; import org.eclipse.hawkbit.ui.management.event.TargetTableEvent;
import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil; import org.eclipse.hawkbit.ui.utils.HawkbitCommonUtil;
@@ -35,15 +32,10 @@ import org.vaadin.spring.events.EventBus;
import com.vaadin.event.FieldEvents.TextChangeEvent; import com.vaadin.event.FieldEvents.TextChangeEvent;
import com.vaadin.event.FieldEvents.TextChangeListener; import com.vaadin.event.FieldEvents.TextChangeListener;
import com.vaadin.server.FontAwesome;
import com.vaadin.spring.annotation.SpringComponent; import com.vaadin.spring.annotation.SpringComponent;
import com.vaadin.spring.annotation.VaadinSessionScope; import com.vaadin.spring.annotation.VaadinSessionScope;
import com.vaadin.ui.AbstractOrderedLayout;
import com.vaadin.ui.Alignment;
import com.vaadin.ui.Button;
import com.vaadin.ui.CustomComponent; import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.FormLayout; import com.vaadin.ui.FormLayout;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label; import com.vaadin.ui.Label;
import com.vaadin.ui.TextArea; import com.vaadin.ui.TextArea;
import com.vaadin.ui.TextField; import com.vaadin.ui.TextField;
@@ -75,15 +67,10 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
@Autowired @Autowired
private transient UINotification uINotification; private transient UINotification uINotification;
@Autowired
private transient UiProperties uiProperties;
private TextField controllerIDTextField; private TextField controllerIDTextField;
private TextField nameTextField; private TextField nameTextField;
private TextArea descTextArea; private TextArea descTextArea;
private Label madatoryLabel; private Label madatoryLabel;
// private Button saveTarget;
// private Button discardTarget;
private boolean editTarget = Boolean.FALSE; private boolean editTarget = Boolean.FALSE;
private String controllerId; private String controllerId;
private VerticalLayout mainLayout; private VerticalLayout mainLayout;
@@ -125,26 +112,9 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
/* Label for mandatory symbol */ /* Label for mandatory symbol */
madatoryLabel = new Label(i18n.get("label.mandatory.field")); madatoryLabel = new Label(i18n.get("label.mandatory.field"));
madatoryLabel.setStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_ERROR + " " + ValoTheme.LABEL_SMALL); madatoryLabel.setStyleName(SPUIStyleDefinitions.SP_TEXTFIELD_ERROR + " " + ValoTheme.LABEL_SMALL);
// /* save or update button */
// saveTarget = SPUIComponentProvider.getButton(SPUIDefinitions.NEW_TARGET_SAVE, "", "", "", true,
// FontAwesome.SAVE, SPUIButtonStyleSmallNoBorder.class);
// saveTarget.addClickListener(event -> saveTargetListner());
// /* close button */
// discardTarget = SPUIComponentProvider.getButton(SPUIDefinitions.NEW_TARGET_DISCARD, "", "", "", true,
// FontAwesome.TIMES, SPUIButtonStyleSmallNoBorder.class);
// discardTarget.addClickListener(event -> discardTargetListner());
} }
private void buildLayout() { private void buildLayout() {
/* action button layout (save & dicard) */
// final HorizontalLayout buttonsLayout = new HorizontalLayout();
// buttonsLayout.setSizeFull();
// buttonsLayout.addComponents(saveTarget, discardTarget);
// buttonsLayout.setComponentAlignment(saveTarget, Alignment.BOTTOM_LEFT);
// buttonsLayout.setComponentAlignment(discardTarget, Alignment.BOTTOM_RIGHT);
// buttonsLayout.addStyleName("window-style");
/* /*
* The main layout of the window contains mandatory info, textboxes * The main layout of the window contains mandatory info, textboxes
@@ -154,9 +124,6 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
mainLayout.setSpacing(Boolean.TRUE); mainLayout.setSpacing(Boolean.TRUE);
mainLayout.addStyleName("lay-color"); mainLayout.addStyleName("lay-color");
mainLayout.setSizeUndefined(); mainLayout.setSizeUndefined();
// mainLayout.addComponent(new PopupWindowHelp(uiProperties.getLinks().getDocumentation().getRoot()));
// mainLayout.addComponent(madatoryLabel);
// mainLayout.setComponentAlignment(madatoryLabel, Alignment.MIDDLE_LEFT);
FormLayout formLayout = new FormLayout(); FormLayout formLayout = new FormLayout();
formLayout.addComponent(madatoryLabel); formLayout.addComponent(madatoryLabel);
@@ -168,7 +135,6 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
if (Boolean.TRUE.equals(editTarget)) { if (Boolean.TRUE.equals(editTarget)) {
madatoryLabel.setVisible(Boolean.FALSE); madatoryLabel.setVisible(Boolean.FALSE);
} }
// mainLayout.addComponents(madatoryLabel, controllerIDTextField, nameTextField, descTextArea, buttonsLayout);
nameTextField.focus(); nameTextField.focus();
} }
@@ -197,7 +163,6 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
} }
}); });
} }
private void addTargetDescChangeListner() { private void addTargetDescChangeListner() {
@@ -282,7 +247,7 @@ public class TargetAddUpdateWindowLayout extends CustomComponent {
public Window getWindow() { public Window getWindow() {
eventBus.publish(this, DragEvent.HIDE_DROP_HINT); eventBus.publish(this, DragEvent.HIDE_DROP_HINT);
addTargetWindow = SPUIComponentProvider.getWindow(i18n.get("caption.add.new.target"), null, addTargetWindow = SPUIComponentProvider.getWindow(i18n.get("caption.add.new.target"), null,
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveTargetListner(),event -> discardTargetListner()); SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> saveTargetListner(),event -> discardTargetListner(), null);
return addTargetWindow; return addTargetWindow;
} }

View File

@@ -145,7 +145,7 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
*/ */
public void init() { public void init() {
setSizeFull(); setSizeUndefined();
createRequiredComponents(); createRequiredComponents();
buildLayout(); buildLayout();
} }
@@ -153,7 +153,8 @@ public class AddUpdateRolloutWindowLayout extends GridLayout {
public CommonDialogWindow getWindow() { public CommonDialogWindow getWindow() {
addUpdateRolloutWindow = SPUIComponentProvider.getWindow(i18n.get("caption.configure.rollout"), null, addUpdateRolloutWindow = SPUIComponentProvider.getWindow(i18n.get("caption.configure.rollout"), null,
SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> onRolloutSave(), event -> onDiscard()); SPUIDefinitions.CREATE_UPDATE_WINDOW, this, event -> onRolloutSave(), event -> onDiscard(),
uiProperties.getLinks().getDocumentation().getRolloutView());
return addUpdateRolloutWindow; return addUpdateRolloutWindow;
} }