// ============================================================================
//
// 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 com.amalto.workbench.widgets;
import java.util.List;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.events.SelectionListener;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IWorkbenchPartSite;
import org.eclipse.ui.forms.widgets.FormToolkit;
import com.amalto.workbench.editors.DataClusterDialog;
import com.amalto.workbench.i18n.Messages;
import com.amalto.workbench.models.TreeObject;
/**
* created by liusongbo on 2013-1-29
*
*/
public class ComplexTableViewerR extends ComplexTableViewer {
private IWorkbenchPartSite site;
public ComplexTableViewerR(List<ComplexTableViewerColumn> columns, FormToolkit toolkit, Composite parent,
IWorkbenchPartSite site) {
super(columns, toolkit, parent);
this.site = site;
}
@Override
protected void creatTextPortion(Composite textParent, ComplexTableViewerColumn column) {
Composite righComposite = toolkit.createComposite(textParent, SWT.NONE);
righComposite.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false, 1, 1));
GridLayout layout = new GridLayout(1, false);
layout.marginHeight = 0;
righComposite.setLayout(layout);
Button readRecordButton = toolkit.createButton(righComposite, Messages.ComplexTableViewerR_PickRecordFromContainer, SWT.PUSH | SWT.CENTER);
readRecordButton.addSelectionListener(new SelectionListener() {
public void widgetSelected(SelectionEvent e) {
DataClusterDialog dialog = new DataClusterDialog(site.getShell(), new TreeObject(),
site);
dialog.create();
Point size = dialog.getShell().getSize();
Rectangle clientArea = Display.getCurrent().getClientArea();
int locx = clientArea.x + (clientArea.width - size.x)/2;
int locy = clientArea.y + (clientArea.height - size.y)/2;
dialog.getShell().setLocation(locx, locy);
if (dialog.open() == Dialog.OK) {
String recordContent = dialog.getRecordContent();
if (recordContent != null && recordContent.trim().length() > 0)
text.setText(recordContent);
}
}
public void widgetDefaultSelected(SelectionEvent e) {//
}
});
readRecordButton.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, true, 1, 1));
super.creatTextPortion(righComposite, column);
}
}