// ============================================================================
//
// Copyright (C) 2006-2012 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.repository.ui.dialog;
import org.eclipse.jface.viewers.ISelectionChangedListener;
import org.eclipse.jface.viewers.IStructuredSelection;
import org.eclipse.jface.viewers.SelectionChangedEvent;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.utils.RepositoryManagerHelper;
import org.talend.repository.i18n.Messages;
import org.talend.repository.ui.views.IRepositoryView;
/**
* A job selection dialog used for opening jobs.
*/
public class OpenJobSelectionDialog extends RepositoryReviewDialog {
private static final int SELECTINREPOSITORY = 99;
public OpenJobSelectionDialog(Shell parentShell) {
super(parentShell, ERepositoryObjectType.PROCESS, null);
}
/*
* (non-Javadoc)
*
* @see org.talend.repository.ui.dialog.RepositoryReviewDialog#configureShell(org.eclipse.swt.widgets.Shell)
*/
@Override
protected void configureShell(Shell shell) {
super.configureShell(shell);
shell.setText(Messages.getString("OpenJobSelectionDialog.findJob")); //$NON-NLS-1$
}
/*
* (non-Javadoc)
*
* @see
* org.talend.repository.ui.dialog.RepositoryReviewDialog#createButtonsForButtonBar(org.eclipse.swt.widgets.Composite
* )
*/
@Override
protected void createButtonsForButtonBar(Composite parent) {
createButton(parent, SELECTINREPOSITORY, "Link Repository", false); //$NON-NLS-1$
super.createButtonsForButtonBar(parent);
}
/*
* (non-Javadoc)
*
* @see org.eclipse.jface.dialogs.Dialog#buttonPressed(int)
*/
@Override
protected void buttonPressed(int buttonId) {
if (SELECTINREPOSITORY == buttonId) {
IStructuredSelection selection = (IStructuredSelection) getRepositoryTreeViewer().getSelection();
// RepositoryNode node = (RepositoryNode) selection.getFirstElement();
//
// RepositoryView.show().expand(node);
final IRepositoryView repositoryView = RepositoryManagerHelper.findRepositoryView();
if (repositoryView != null) {
repositoryView.getViewer().setSelection(selection, true);
}
} else {
super.buttonPressed(buttonId);
}
}
/*
* (non-Javadoc)
*
* @see org.talend.repository.ui.dialog.RepositoryReviewDialog#createDialogArea(org.eclipse.swt.widgets.Composite)
*/
@Override
protected Control createDialogArea(Composite parent) {
Control control = super.createDialogArea(parent);
getRepositoryTreeViewer().addSelectionChangedListener(new ISelectionChangedListener() {
public void selectionChanged(SelectionChangedEvent event) {
boolean highlightOKButton = isSelectionValid(event);
getButton(SELECTINREPOSITORY).setEnabled(highlightOKButton);
}
});
return control;
}
}