| /******************************************************************************* |
| * Copyright (c) 2016 Obeo. |
| * 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: |
| * Obeo - initial API and implementation and/or initial documentation |
| * ... |
| *******************************************************************************/ |
| package org.eclipse.intent.mapping.ide.ui.command; |
| |
| import org.eclipse.jface.dialogs.Dialog; |
| import org.eclipse.jface.dialogs.IDialogConstants; |
| import org.eclipse.swt.SWT; |
| import org.eclipse.swt.events.DisposeEvent; |
| import org.eclipse.swt.events.DisposeListener; |
| import org.eclipse.swt.graphics.Point; |
| import org.eclipse.swt.layout.FillLayout; |
| import org.eclipse.swt.widgets.Composite; |
| import org.eclipse.swt.widgets.Control; |
| import org.eclipse.swt.widgets.Shell; |
| import org.eclipse.swt.widgets.Text; |
| |
| /** |
| * A multi line text {@link Dialog}. |
| * |
| * @author <a href="mailto:yvan.lussaud@obeo.fr">Yvan Lussaud</a> |
| */ |
| public class MultiLineTextDialog extends Dialog { |
| |
| /** |
| * Initial {@link Dialog} size. |
| */ |
| private static final int Y = 300; |
| |
| /** |
| * Initial {@link Dialog} size. |
| */ |
| private static final int X = 450; |
| |
| /** |
| * The initial text. |
| */ |
| private String text; |
| |
| /** |
| * Create the dialog. |
| * |
| * @param parentShell |
| * the parent {@link Shell} |
| * @param initialText |
| * the initial text |
| */ |
| public MultiLineTextDialog(Shell parentShell, String initialText) { |
| super(parentShell); |
| this.text = initialText; |
| } |
| |
| /** |
| * Create contents of the dialog. |
| * |
| * @param parent |
| */ |
| @Override |
| protected Control createDialogArea(Composite parent) { |
| Composite container = (Composite)super.createDialogArea(parent); |
| container.setLayout(new FillLayout(SWT.HORIZONTAL)); |
| |
| final Text textText = new Text(container, SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.CANCEL |
| | SWT.MULTI); |
| textText.setText(text); |
| textText.addDisposeListener(new DisposeListener() { |
| |
| public void widgetDisposed(DisposeEvent e) { |
| text = textText.getText(); |
| } |
| }); |
| |
| return container; |
| } |
| |
| /** |
| * Create contents of the button bar. |
| * |
| * @param parent |
| */ |
| @Override |
| protected void createButtonsForButtonBar(Composite parent) { |
| createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true); |
| createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false); |
| } |
| |
| /** |
| * Return the initial size of the dialog. |
| */ |
| @Override |
| protected Point getInitialSize() { |
| return new Point(X, Y); |
| } |
| |
| /** |
| * Gets the {@link Dialog} text. |
| * |
| * @return the {@link Dialog} text |
| */ |
| public String getText() { |
| return text; |
| } |
| |
| } |