// ============================================================================ // // 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.detailtabs.sections.composites; import java.util.ArrayList; import java.util.List; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; 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 com.amalto.workbench.detailtabs.sections.util.CommitBarListenerRegistry; import com.amalto.workbench.i18n.Messages; public class CommitBarComposite extends Composite { private Button btnSubmit; private Button btnReset; private List<CommitBarListener> listeners = new ArrayList<CommitBarListener>(); public CommitBarComposite(Composite parent, int style) { super(parent, style); final GridLayout gridLayout = new GridLayout(); gridLayout.horizontalSpacing = 10; gridLayout.makeColumnsEqualWidth = true; gridLayout.numColumns = 2; setLayout(gridLayout); setBackground(parent.getDisplay().getSystemColor(SWT.COLOR_WHITE)); btnSubmit = new Button(this, SWT.NONE); final GridData gd_btnSubmit = new GridData(SWT.FILL, SWT.FILL, false, false); gd_btnSubmit.heightHint = 18; gd_btnSubmit.widthHint = 74; btnSubmit.setLayoutData(gd_btnSubmit); btnSubmit.setText(Messages.CommitBarComposite_Apply); btnReset = new Button(this, SWT.NONE); btnReset.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false)); btnReset.setText(Messages.CommitBarComposite_Reset); initUIListeners(); } public void addCommitListener(CommitBarListener listener) { if (listener != null && !listeners.contains(listener)) { listeners.add(listener); } } public void removeCommitListener(CommitBarListener listener) { listeners.remove(listener); } public void removeAllCommitBarListeners() { listeners.clear(); } public List<CommitBarListener> getCommitBarListeners() { return listeners; } public void fireSubmit() { for (CommitBarListener eachListener : listeners) eachListener.onSubmit(); } public void fireSubmitAllTabs() { for (CommitBarListener eachListener : CommitBarListenerRegistry .getInstance().getAllRegistedListeners()) eachListener.onSubmit(); } private void fireReset() { for (CommitBarListener eachListener : listeners) eachListener.onReset(); } private void initUIListeners() { btnSubmit.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { fireSubmit(); //fireSubmitAllTabs(); } }); btnReset.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { fireReset(); } }); } public Button getBtnSubmit() { return btnSubmit; } public void setBtnSubmit(Button btnSubmit) { this.btnSubmit = btnSubmit; } public Button getBtnReset() { return btnReset; } public void setBtnReset(Button btnReset) { this.btnReset = btnReset; } public interface CommitBarListener { public void onReset(); public void onSubmit(); } }