| /** |
| * Copyright (c) 2011, 2014 - Lunifera GmbH (Gross Enzersdorf, Austria), Loetz GmbH&Co.KG (69115 Heidelberg, Germany) |
| * 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 |
| * |
| * Contributors: |
| * Florian Pirchner - Initial implementation |
| */ |
| package org.eclipse.osbp.vaaclipse.addons.perspective.dialog; |
| |
| import java.util.Locale; |
| |
| import org.eclipse.osbp.runtime.common.i18n.II18nService; |
| import org.eclipse.osbp.runtime.web.vaadin.common.resource.IResourceProvider; |
| import org.eclipse.osbp.runtime.web.vaadin.components.dialogs.AbstractInputDialog; |
| import org.eclipse.osbp.runtime.web.vaadin.components.dialogs.IDialogI18nKeys; |
| |
| import com.vaadin.data.util.BeanItem; |
| import com.vaadin.server.Resource; |
| import com.vaadin.ui.CheckBox; |
| import com.vaadin.ui.FormLayout; |
| import com.vaadin.ui.TextField; |
| import com.vaadin.ui.UI; |
| import com.vaadin.ui.Window; |
| |
| /** |
| * The Class SavePerspectiveDialog. |
| */ |
| public class SavePerspectiveDialog extends AbstractInputDialog { |
| |
| /** The Constant DIALOG_TITLE. */ |
| public static final String DIALOG_TITLE = "org.eclipse.osbp.dialogs.saveperspective.title"; |
| |
| /** The Constant DIALOG_MESSAGE. */ |
| public static final String DIALOG_MESSAGE = "org.eclipse.osbp.dialogs.saveperspective.message"; |
| |
| /** The Constant DIALOG_ICON. */ |
| public static final String DIALOG_ICON = "org.eclipse.osbp.dialogs.saveperspective.image"; |
| |
| /** The Constant DIALOG_DESCRIPTION. */ |
| public static final String DIALOG_DESCRIPTION = "org.eclipse.osbp.dialogs.saveperspective.description"; |
| |
| /** The Constant DIALOG_OPTION__ACCEPT_CAPTION. */ |
| public static final String DIALOG_OPTION__ACCEPT_CAPTION = "org.eclipse.osbp.dialogs.options.saveperspective"; |
| |
| /** The Constant DIALOG_OPTION__ACCEPT_DESCRIPTION. */ |
| public static final String DIALOG_OPTION__ACCEPT_DESCRIPTION = "org.eclipse.osbp.dialogs.options.saveperspective.description"; |
| |
| /** The Constant NAME_FIELD. */ |
| public static final String NAME_FIELD = "org.eclipse.osbp.dialogs.saveperspective.nameField"; |
| |
| /** The Constant SYSTEM_USER_FIELD. */ |
| public static final String SYSTEM_USER_FIELD = "org.eclipse.osbp.dialogs.saveperspective.systemUserField"; |
| |
| /** The i18n service. */ |
| private II18nService i18nService; |
| |
| /** The name. */ |
| private TextField name; |
| |
| /** The system user. */ |
| private CheckBox systemUser; |
| |
| /** The data. */ |
| private Data data; |
| |
| /** The item. */ |
| private BeanItem<Data> item; |
| |
| /** The system user capability. */ |
| private boolean systemUserCapability; |
| |
| /** |
| * Instantiates a new save perspective dialog. |
| * |
| * @param config |
| * the config |
| * @param data |
| * the data |
| * @param options |
| * the options |
| */ |
| protected SavePerspectiveDialog(DialogConfig config, Data data, |
| Option... options) { |
| super(config, options); |
| this.data = data; |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.osbp.runtime.web.vaadin.components.dialogs.AbstractInputDialog#fillForm(com.vaadin.ui.FormLayout) |
| */ |
| @Override |
| protected void fillForm(FormLayout customArea) { |
| Locale locale = UI.getCurrent().getLocale(); |
| name = new TextField(i18nService.getValue(NAME_FIELD, locale)); |
| name.setNullRepresentation(""); |
| systemUser = new CheckBox(i18nService.getValue(SYSTEM_USER_FIELD, |
| locale)); |
| systemUser.setVisible(systemUserCapability); |
| |
| customArea.addComponent(name); |
| customArea.addComponent(systemUser); |
| |
| item = new BeanItem<Data>(data); |
| name.setPropertyDataSource(item.getItemProperty("name")); |
| systemUser.setPropertyDataSource(item.getItemProperty("systemUser")); |
| |
| name.focus(); |
| } |
| |
| /** |
| * Show dialog. |
| * |
| * @param service |
| * the service |
| * @param systemUserCapability |
| * the system user capability |
| * @param resourceProvider |
| * the resource provider |
| * @param onAccept |
| * the on accept |
| * @param data |
| * the data |
| */ |
| public static void showDialog(II18nService service, |
| boolean systemUserCapability, IResourceProvider resourceProvider, |
| Runnable onAccept, Data data) { |
| if (service == null) { |
| throw new NullPointerException("Please pass an i18nService"); |
| } |
| |
| Locale locale = UI.getCurrent().getLocale(); |
| String dialogTitle = service.getValue(DIALOG_TITLE, locale); |
| String dialogMessage = service.getValue(DIALOG_MESSAGE, locale); |
| String dialogDescription = service.getValue(DIALOG_DESCRIPTION, locale); |
| String dialogIcon = service.getValue(DIALOG_ICON, locale); |
| String optionAcceptCaption = service.getValue( |
| DIALOG_OPTION__ACCEPT_CAPTION, locale); |
| String optionAcceptDescription = service.getValue( |
| DIALOG_OPTION__ACCEPT_DESCRIPTION, locale); |
| String optionCancelCaption = service.getValue( |
| IDialogI18nKeys.DIALOG_OPTION__CANCEL_CAPTION, locale); |
| String optionCancelDescription = service.getValue( |
| IDialogI18nKeys.DIALOG_OPTION__CANCEL_DESCRIPTION, locale); |
| String optionCancelIcon = service.getValue( |
| IDialogI18nKeys.DIALOG_OPTION__CANCEL_ICON, locale); |
| |
| DialogConfig config = new DialogConfig(dialogTitle, dialogMessage, |
| dialogDescription, createResource(dialogIcon, resourceProvider)) { |
| @Override |
| public void config(Window window) { |
| super.config(window); |
| window.setHeight("220px"); |
| window.setWidth("350px"); |
| window.center(); |
| } |
| }; |
| |
| SavePerspectiveDialog dialog = new SavePerspectiveDialog(config, data, |
| new Option(optionCancelCaption, optionCancelDescription, |
| createResource(optionCancelIcon, resourceProvider), |
| null), new Option(optionAcceptCaption, |
| optionAcceptDescription, null, onAccept)); |
| |
| dialog.i18nService = service; |
| dialog.systemUserCapability = systemUserCapability; |
| dialog.open(); |
| } |
| |
| /** |
| * The Class Data. |
| */ |
| public static class Data { |
| |
| /** The name. */ |
| private String name; |
| |
| /** The system user. */ |
| private boolean systemUser; |
| |
| /** |
| * Gets the name. |
| * |
| * @return the name |
| */ |
| public String getName() { |
| return name; |
| } |
| |
| /** |
| * Sets the name. |
| * |
| * @param name |
| * the name to set |
| */ |
| public void setName(String name) { |
| this.name = name; |
| } |
| |
| /** |
| * Checks if is system user. |
| * |
| * @return the systemUser |
| */ |
| public boolean isSystemUser() { |
| return systemUser; |
| } |
| |
| /** |
| * Sets the system user. |
| * |
| * @param systemUser |
| * the systemUser to set |
| */ |
| public void setSystemUser(boolean systemUser) { |
| this.systemUser = systemUser; |
| } |
| |
| } |
| |
| /** |
| * The Class AcceptOption. |
| */ |
| public static class AcceptOption extends Option { |
| |
| /** |
| * Instantiates a new accept option. |
| * |
| * @param name |
| * the name |
| * @param description |
| * the description |
| * @param icon |
| * the icon |
| * @param runnable |
| * the runnable |
| */ |
| public AcceptOption(String name, String description, Resource icon, |
| Runnable runnable) { |
| super(name, description, icon, runnable); |
| } |
| } |
| } |