blob: d46537a3cc21b7fbbe1115f72dc7b8aebf295732 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2015 Ericsson
*
* All rights reserved. This program and the accompanying materials are
* made available under the terms of the Eclipse Public License 2.0 which
* accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Patrick Tasse - Initial API and implementation
*******************************************************************************/
package org.eclipse.tracecompass.internal.tmf.ui.dialogs;
import org.eclipse.jface.preference.ColorSelector;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.graphics.RGBA;
import org.eclipse.swt.layout.RowLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Scale;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.tracecompass.internal.tmf.ui.Messages;
/**
* A dialog for soliciting a bookmark description and color from the user.
*
* @since 2.0
*/
public class AddBookmarkDialog extends MultiLineInputDialog {
private ColorSelector fColorSelector;
private Scale fAlphaScale;
private Label fAlphaLabel;
private int fAlpha = 128;
/**
* Constructor
*
* @param parentShell
* the parent shell
* @param initialValue
* the initial input value, or <code>null</code> if none (equivalent to the empty string)
*/
public AddBookmarkDialog(Shell parentShell, String initialValue) {
super(parentShell, Messages.AddBookmarkDialog_Title, Messages.AddBookmarkDialog_Message, initialValue);
}
@Override
protected Control createDialogArea(Composite parent) {
Composite areaComposite = (Composite) super.createDialogArea(parent);
Composite colorComposite = new Composite(areaComposite, SWT.NONE);
RowLayout layout = new RowLayout();
layout.center = true;
colorComposite.setLayout(layout);
colorComposite.moveBelow(getText());
Label colorLabel = new Label(colorComposite, SWT.NONE);
colorLabel.setText(Messages.AddBookmarkDialog_Color);
fColorSelector = new ColorSelector(colorComposite);
fColorSelector.setColorValue(new RGB(255, 0, 0));
Label alphaLabel = new Label(colorComposite, SWT.NONE);
alphaLabel.setText(Messages.AddBookmarkDialog_Alpha);
fAlphaScale = new Scale(colorComposite, SWT.NONE);
fAlphaScale.setMaximum(255);
fAlphaScale.setSelection(fAlpha);
fAlphaScale.setIncrement(1);
fAlphaScale.setPageIncrement(16);
fAlphaScale.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
fAlpha = fAlphaScale.getSelection();
fAlphaLabel.setText(Integer.toString(fAlpha));
}
});
fAlphaLabel = new Label(colorComposite, SWT.NONE);
fAlphaLabel.setText(Integer.toString(fAlpha));
return areaComposite;
}
/**
* Returns the color selected in this dialog.
*
* @return the color RGBA value
*/
public RGBA getColorValue() {
RGB rgb = fColorSelector.getColorValue();
return new RGBA(rgb.red, rgb.green, rgb.blue, fAlpha);
}
}