// ============================================================================ // // 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.projectsetting; import org.eclipse.swt.SWT; 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.Control; import org.eclipse.swt.widgets.Group; import org.talend.core.model.process.IElementParameter; import org.talend.core.model.properties.ImplicitContextSettings; import org.talend.core.model.properties.StatAndLogsSettings; import org.talend.core.repository.model.ProxyRepositoryFactory; import org.talend.designer.core.i18n.Messages; import org.talend.designer.core.model.components.EParameterName; import org.talend.repository.model.IProxyRepositoryFactory; import org.talend.repository.preference.ProjectSettingPage; /** * DOC achen class global comment. Detailled comment */ public class JobSettingProjectSettingPage extends ProjectSettingPage { Button implicitBtn, statBtn; private Composite mComposite; private Composite createPageLayout(Composite parent) { Composite main = new Composite(parent, SWT.NULL); main.setLayout(new GridLayout()); main.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.HORIZONTAL_ALIGN_FILL)); return main; } protected Composite createImplicitGroup(Composite parent) { Group group = new Group(parent, SWT.NONE); group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); group.setLayout(new GridLayout(3, false)); Composite composite = new Composite(group, SWT.NONE); GridLayout gridLayout = new GridLayout(3, false); composite.setLayout(gridLayout); GridData gridData = new GridData(GridData.FILL_HORIZONTAL); gridData.grabExcessHorizontalSpace = true; gridData.horizontalSpan = 3; composite.setLayoutData(gridData); group.setText(Messages.getString("JobSettingProjectSettingPage.implictLabel")); //$NON-NLS-1$ implicitBtn = new Button(composite, SWT.CHECK); implicitBtn.setText(Messages.getString("JobSettingProjectSettingPage.UseProjectsetting")); //$NON-NLS-1$ GridLayout layout = new GridLayout(); layout.numColumns = 3; layout.marginWidth = 0; layout.marginHeight = 0; layout.horizontalSpacing = 8; composite.setLayout(layout); IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance(); if (factory.isUserReadOnlyOnCurrentProject()) { parent.setEnabled(false); } return group; } protected Composite createStatGroup(Composite parent) { Group group = new Group(parent, SWT.NONE); group.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); group.setLayout(new GridLayout(3, false)); Composite composite = new Composite(group, SWT.NONE); GridLayout gridLayout = new GridLayout(3, false); composite.setLayout(gridLayout); GridData gridData = new GridData(GridData.FILL_HORIZONTAL); gridData.grabExcessHorizontalSpace = true; gridData.horizontalSpan = 3; composite.setLayoutData(gridData); group.setText(Messages.getString("JobSettingProjectSettingPage.statAndLog")); //$NON-NLS-1$ statBtn = new Button(composite, SWT.CHECK); statBtn.setText(Messages.getString("JobSettingProjectSettingPage.UseProjectsetting")); //$NON-NLS-1$ GridLayout layout = new GridLayout(); layout.numColumns = 3; layout.marginWidth = 0; layout.marginHeight = 0; layout.horizontalSpacing = 8; composite.setLayout(layout); return group; } /* * (non-Javadoc) * * @see org.eclipse.jface.preference.PreferencePage#createContents(org.eclipse.swt.widgets.Composite) */ @Override protected Control createContents(Composite parent) { mComposite = createPageLayout(parent); createImplicitGroup(mComposite); createStatGroup(mComposite); init(); return mComposite; } /* * (non-Javadoc) * * @see org.eclipse.jface.preference.PreferencePage#performOk() */ @Override public boolean performOk() { if (mComposite != null) { ImplicitContextSettings implicit = pro.getEmfProject().getImplicitContextSettings(); if (implicit != null) { // save to emf Model ElementParameter2ParameterType.setParameterValue(implicit.getParameters(), EParameterName.IMPLICT_DEFAULT_PROJECTSETTING.getName(), Boolean.valueOf(implicitBtn.getSelection())); // save to the memory IElementParameter elementParameter = pro.getInitialContextLoad().getElementParameter( EParameterName.IMPLICT_DEFAULT_PROJECTSETTING.getName()); if (elementParameter != null) { elementParameter.setValue(Boolean.valueOf(implicitBtn.getSelection())); } } StatAndLogsSettings stat = pro.getEmfProject().getStatAndLogsSettings(); if (stat != null) { ElementParameter2ParameterType.setParameterValue(stat.getParameters(), EParameterName.STATS_DEFAULT_PROJECTSETTING.getName(), Boolean.valueOf(statBtn.getSelection())); IElementParameter elementParameter = pro.getStatsAndLog().getElementParameter( EParameterName.STATS_DEFAULT_PROJECTSETTING.getName()); if (elementParameter != null) { elementParameter.setValue(Boolean.valueOf(statBtn.getSelection())); } } ProjectSettingManager.saveProject(); } return super.performOk(); } private void init() { ImplicitContextSettings implicit = pro.getEmfProject().getImplicitContextSettings(); if (implicit != null) { String v = ElementParameter2ParameterType.getParameterValue(implicit.getParameters(), EParameterName.IMPLICT_DEFAULT_PROJECTSETTING.getName()); if (v != null) implicitBtn.setSelection(Boolean.valueOf(v)); else implicitBtn.setSelection(true); } StatAndLogsSettings stat = pro.getEmfProject().getStatAndLogsSettings(); if (stat != null) { String v = ElementParameter2ParameterType.getParameterValue(stat.getParameters(), EParameterName.STATS_DEFAULT_PROJECTSETTING.getName()); if (v != null) statBtn.setSelection(Boolean.valueOf(v)); else statBtn.setSelection(true); } } /* * (non-Javadoc) * * @see org.talend.repository.preference.ProjectSettingPage#refresh() */ @Override public void refresh() { // TODO Auto-generated method stub } }