// ============================================================================
//
// 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.designer.core.ui.editor.properties.notes;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CLabel;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.views.properties.tabbed.ITabbedPropertyConstants;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage;
import org.talend.designer.core.i18n.Messages;
import org.talend.designer.core.ui.editor.cmd.ChangeNoteOpacityCommand;
/**
*/
public class OpaqueNotePropertySection extends AbstractNotePropertySection {
private Button check;
@Override
public void createControls(Composite parent, TabbedPropertySheetPage aTabbedPropertySheetPage) {
super.createControls(parent, aTabbedPropertySheetPage);
Composite composite = getWidgetFactory().createFlatFormComposite(parent);
if (composite.getLayout() instanceof FormLayout) {
FormLayout formLayout = (FormLayout) composite.getLayout();
formLayout.spacing = 0;
}
FormData data;
check = getWidgetFactory().createButton(composite, "", SWT.CHECK); //$NON-NLS-1$
data = new FormData();
data.left = new FormAttachment(0, 0);
data.top = new FormAttachment(0, ITabbedPropertyConstants.VSPACE);
check.setLayoutData(data);
CLabel labelLabel = getWidgetFactory().createCLabel(composite, Messages.getString("OpaqueNoteSection.Label")); //$NON-NLS-1$
data = new FormData();
data.left = new FormAttachment(check);
data.top = new FormAttachment(check, 0, SWT.TOP);
labelLabel.setLayoutData(data);
check.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
if (check.getSelection() != (note.isOpaque())) {
ChangeNoteOpacityCommand command = new ChangeNoteOpacityCommand(note, check.getSelection());
getCommandStack().execute(command);
}
}
});
}
@Override
public void refresh() {
if (!check.isDisposed()) {
check.setEnabled(!note.isReadOnly());
check.setSelection(note.isOpaque());
}
}
}