// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.mdm.repository.ui.dialogs; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.viewers.ISelectionChangedListener; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.viewers.StructuredSelection; import org.eclipse.swt.SWT; 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.Shell; import org.talend.core.model.repository.IRepositoryViewObject; import org.talend.core.model.repository.RepositoryObject; import org.talend.designer.core.ui.views.jobsettings.tabs.ProcessVersionComposite; import org.talend.repository.model.RepositoryNode; /** * DOC Administrator class global comment. Detailled comment */ public class SelectVersionDialog extends Dialog { private IRepositoryViewObject viewObj; private String title; private ProcessVersionComposite versionListComposite; /** * DOC Administrator SelectVersionDialog constructor comment. * * @param parentShell */ public SelectVersionDialog(Shell parentShell, String title, IRepositoryViewObject viewObject) { super(parentShell); this.title = title; this.viewObj = viewObject; } @Override protected Control createDialogArea(Composite parent) { parent.getShell().setText(title); Composite composite = (Composite) super.createDialogArea(parent); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); composite.setLayout(new GridLayout()); versionListComposite = new ProcessVersionComposite(composite, SWT.NULL, null, viewObj); GridData gd = new GridData(GridData.FILL_BOTH); gd.heightHint = 150; gd.widthHint = 450; versionListComposite.setLayoutData(gd); versionListComposite.getTableViewer().addSelectionChangedListener(new ISelectionChangedListener() { public void selectionChanged(SelectionChangedEvent event) { getButton(IDialogConstants.OK_ID).setEnabled(true); } }); versionListComposite.refresh(); return composite; } public IRepositoryViewObject getSelection() { StructuredSelection selection = (StructuredSelection) versionListComposite.getSelection(); if (selection.getFirstElement() instanceof RepositoryNode) { RepositoryNode node = (RepositoryNode) selection.getFirstElement(); RepositoryObject repositoryObj = new RepositoryObject(node.getObject().getProperty()); return repositoryObj; } return null; } @Override protected void createButtonsForButtonBar(Composite parent) { super.createButtonsForButtonBar(parent); getButton(IDialogConstants.OK_ID).setEnabled(false); } }