/** * This file is protected by Copyright. * Please refer to the COPYRIGHT file distributed with this source distribution. * * This file is part of REDHAWK IDE. * * 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 gov.redhawk.logging.ui.dialogs; import org.eclipse.core.databinding.DataBindingContext; import org.eclipse.core.databinding.beans.PojoProperties; import org.eclipse.core.databinding.observable.value.IObservableValue; import org.eclipse.jface.databinding.swt.WidgetProperties; import org.eclipse.jface.databinding.viewers.ViewerProperties; import org.eclipse.jface.dialogs.TitleAreaDialog; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.viewers.ArrayContentProvider; import org.eclipse.jface.viewers.ComboViewer; import org.eclipse.jface.viewers.LabelProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Combo; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Shell; import org.eclipse.swt.widgets.Text; import gov.redhawk.logging.ui.LogLevels; public class LoggingDetailsDialog extends TitleAreaDialog { private String logger = ""; //$NON-NLS-1$ private LogLevels logLevel = LogLevels.INFO; public LoggingDetailsDialog(Shell parentShell) { super(parentShell); } @Override public void create() { super.create(); setTitle(Messages.LoggingDetailsDialog_1); setMessage(Messages.LoggingDetailsDialog_2); setDialogHelpAvailable(false); setHelpAvailable(false); } @Override protected Control createDialogArea(Composite parent) { Composite dialogArea = (Composite) super.createDialogArea(parent); Composite container = new Composite(dialogArea, SWT.NONE); container.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); GridLayout layout = new GridLayout(2, false); container.setLayout(layout); GridDataFactory fillHorzGrid = GridDataFactory.fillDefaults().grab(true, false); Label levelLabel = new Label(container, SWT.NONE); levelLabel.setText(Messages.LoggingDetailsDialog_3); Combo levelCombo = new Combo(container, SWT.NONE); fillHorzGrid.applyTo(levelCombo); Label loggerLabel = new Label(container, SWT.NONE); loggerLabel.setText(Messages.LoggingDetailsDialog_4); Text loggerText = new Text(container, SWT.NONE); loggerText.setMessage(Messages.LoggingDetailsDialog_5); fillHorzGrid.applyTo(loggerText); ComboViewer levelViewer = new ComboViewer(levelCombo); levelViewer.setContentProvider(new ArrayContentProvider()); levelViewer.setInput(LogLevels.values()); levelViewer.setLabelProvider(new LabelProvider() { @Override public String getText(Object element) { return ((LogLevels) element).getLabel(); } }); DataBindingContext dbc = new DataBindingContext(); @SuppressWarnings({ "rawtypes", "unchecked" }) IObservableValue logLevelModelObservable = PojoProperties.value("logLevel").observe(this); dbc.bindValue(ViewerProperties.singleSelection().observe(levelViewer), logLevelModelObservable); //$NON-NLS-1$ @SuppressWarnings({ "rawtypes", "unchecked" }) IObservableValue loggerModelObservable = PojoProperties.value("logger").observe(this); dbc.bindValue(WidgetProperties.text(SWT.Modify).observe(loggerText), loggerModelObservable); //$NON-NLS-1$ return parent; } public String getLogger() { return logger; } public void setLogger(String logger) { this.logger = logger; } public LogLevels getLogLevel() { return logLevel; } public void setLogLevel(LogLevels logLevel) { this.logLevel = logLevel; } }