package com.dubture.composer.ui.dialogs; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.window.IShellProvider; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; 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 com.dubture.composer.ui.ComposerUIPluginConstants; import com.dubture.composer.ui.parts.composer.VersionSuggestion; import com.dubture.composer.ui.utils.WidgetFactory; import com.dubture.getcomposer.core.VersionedPackage; public class DependencyDialog extends Dialog { private VersionedPackage dependency; private Text name; private Text version; /** * @wbp.parser.constructor * @param parentShell * @param dependency */ public DependencyDialog(Shell parentShell, VersionedPackage dependency) { super(parentShell); setShellStyle(SWT.DIALOG_TRIM); this.dependency = dependency; } public DependencyDialog(IShellProvider parentShell, VersionedPackage dependency) { super(parentShell); this.dependency = dependency; } public VersionedPackage getDependency() { return dependency; } @Override protected Control createDialogArea(Composite parent) { getShell().setText("Edit Dependency"); Composite contents = new Composite(parent, SWT.NONE); contents.setLayout(new GridLayout(2, false)); GridData gd_contents = new GridData(); gd_contents.widthHint = 350; contents.setLayoutData(gd_contents); Label lblName = new Label(contents, SWT.NONE); GridData gd_lblName = new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1); gd_lblName.widthHint = ComposerUIPluginConstants.DIALOG_LABEL_WIDTH; lblName.setLayoutData(gd_lblName); lblName.setText("Name"); name = new Text(contents, SWT.BORDER); GridData gd_name = new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1); gd_name.widthHint = ComposerUIPluginConstants.DIALOG_CONTROL_WIDTH; name.setLayoutData(gd_name); name.setEnabled(false); if (dependency.getName() != null) { name.setText(dependency.getName()); } Label lblVersion = new Label(contents, SWT.NONE); lblVersion.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, false, false, 1, 1)); lblVersion.setText("Version"); version = new Text(contents, SWT.BORDER); version.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1)); if (dependency.getVersion() != null) { version.setText(dependency.getVersion()); } version.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { dependency.setVersion(version.getText()); } }); new VersionSuggestion(dependency.getName(), parent, version, null, new WidgetFactory(null)); return contents; } }