/******************************************************************************* * Copyright (c) 2016 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.windup.ui.internal.editor.launch; import static org.jboss.tools.windup.ui.WindupUIPlugin.IMG_SEARCH; import static org.jboss.tools.windup.ui.internal.Messages.*; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; import org.eclipse.emf.databinding.EMFProperties; import org.eclipse.jface.databinding.swt.WidgetProperties; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.layout.GridLayoutFactory; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.DirectoryDialog; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.forms.IFormColors; import org.jboss.tools.windup.ui.WindupUIPlugin; import org.jboss.tools.windup.ui.internal.editor.AbstractSection; import org.jboss.tools.windup.windup.WindupPackage; /** * Section for specifying Windup options. */ public class OptionsSections extends AbstractSection { @SuppressWarnings("unchecked") @Override protected void fillSection(Composite parent) { section.setText(windupOptions); section.setDescription(optionsDescription); Composite container = toolkit.createComposite(parent); GridLayoutFactory.fillDefaults().applyTo(container); GridDataFactory.fillDefaults().span(2, 1).applyTo(container); Button sourceButton = toolkit.createButton(container, sourceMode, SWT.CHECK); sourceButton.setForeground(toolkit.getColors().getColor(IFormColors.TITLE)); bindingContext.bindValue(WidgetProperties.selection().observe(sourceButton), EMFProperties.value(WindupPackage.eINSTANCE.getConfigurationElement_SourceMode()). observe(configuration)); sourceButton.setEnabled(false); container = toolkit.createComposite(parent); GridLayoutFactory.fillDefaults().numColumns(3).applyTo(container); GridDataFactory.fillDefaults().grab(true, false).span(2, 1).applyTo(container); createLabel(container, generatedReportLocation); Text outputLocationText = toolkit.createText(container, configuration.getGeneratedReportsLocation()); outputLocationText.setEditable(false); outputLocationText.setBackground(Display.getDefault().getActiveShell().getBackground()); GridDataFactory.fillDefaults().grab(true, false).hint(400, SWT.DEFAULT).applyTo(outputLocationText); bindingContext.bindValue(WidgetProperties.text(SWT.Modify).observe(outputLocationText), EMFProperties.value(WindupPackage.eINSTANCE.getConfigurationElement_GeneratedReportsLocation()). observe(configuration)); Button reportLocationButton = toolkit.createButton(container, browseLabel, SWT.PUSH); reportLocationButton.setImage(WindupUIPlugin.getDefault().getImageRegistry().get(IMG_SEARCH)); reportLocationButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { DirectoryDialog dd = new DirectoryDialog(WindupUIPlugin.getActiveWorkbenchShell()); dd.setText(generatedReportLocationSearch); String filename = dd.open(); if(filename != null) { IPath path = new Path(filename); if (path != null) { configuration.setGeneratedReportsLocation(path.toString()); } } } }); reportLocationButton.setEnabled(false); } }