// ============================================================================ // // 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 org.talend.mdm.workbench.serverexplorer.console; import org.eclipse.jface.layout.GridDataFactory; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.osgi.util.NLS; import org.eclipse.swt.SWT; import org.eclipse.swt.events.ModifyEvent; import org.eclipse.swt.events.ModifyListener; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Spinner; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.eclipse.ui.PlatformUI; import org.talend.mdm.workbench.serverexplorer.i18n.Messages; /** * * created by Karelun Huang on Mar 20, 2013 Detailled comment * */ public class MDMServerConsolePreferencePage extends PreferencePage implements IWorkbenchPreferencePage { private static final int MIN_BUFFER_SIZE = 1000; private Spinner freqSpinner = null; private Text bufferText = null; public void init(IWorkbench workbench) { // TODO: } @Override protected IPreferenceStore doGetPreferenceStore() { return PlatformUI.getPreferenceStore(); } @Override protected Control createContents(Composite parent) { Composite composite = new Composite(parent, SWT.NONE); composite.setLayout(new GridLayout()); composite.setLayoutData(new GridData(GridData.FILL_BOTH)); doCreateContent(composite); initControls(); return composite; } private void doCreateContent(Composite parent) { Composite composite1 = new Composite(parent, SWT.NONE); composite1.setLayout(new GridLayout(3, false)); composite1.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); new Label(composite1, SWT.NONE).setText(Messages.MDMServerConsolePrefsPage_RefreshLabel_1); freqSpinner = new Spinner(composite1, SWT.BORDER | SWT.READ_ONLY); freqSpinner.setMaximum(5); freqSpinner.setMinimum(1); GridDataFactory.fillDefaults().hint(10, SWT.DEFAULT).applyTo(freqSpinner); new Label(composite1, SWT.NONE).setText(Messages.MDMServerConsolePrefsPage_RefreshLabel_2); Composite composite2 = new Composite(parent, SWT.NONE); composite2.setLayout(new GridLayout(2, false)); composite2.setLayoutData(new GridData(GridData.FILL_HORIZONTAL)); new Label(composite2, SWT.NONE).setText(Messages.MDMServerConsolePrefsPage_Display_Buffer_Text); bufferText = new Text(composite2, SWT.BORDER); GridDataFactory.fillDefaults().hint(100, SWT.DEFAULT).applyTo(bufferText); bufferText.addModifyListener(new ModifyListener() { public void modifyText(ModifyEvent e) { String text = bufferText.getText().trim(); try { int value = Integer.parseInt(text); boolean isValid = value >= MIN_BUFFER_SIZE; String errorMsg = isValid ? null : NLS.bind(Messages.MDMServerConsolePrefsPage_Error_Message1, MIN_BUFFER_SIZE); setErrorMessage(errorMsg); setValid(isValid); } catch (NumberFormatException ex) { setErrorMessage(Messages.MDMServerConsolePrefsPage_Error_Message); setValid(false); } } }); } private void initControls() { int frequency = MDMServerPreferenceService.getRefrehFrequency(); freqSpinner.setSelection(frequency); int bufferSize = MDMServerPreferenceService.getDisplayedBuffer(); bufferText.setText(String.valueOf(bufferSize)); } @Override public boolean performOk() { MDMServerPreferenceService.setRefreshFrequency(freqSpinner.getSelection()); String value = bufferText.getText().trim(); MDMServerPreferenceService.setDisplayedBuffer(Integer.parseInt(value)); return super.performOk(); } @Override protected void performDefaults() { int frequency = MDMServerPreferenceService.getDefaultRefreshFrequency(); freqSpinner.setSelection(frequency); int bufferSize = MDMServerPreferenceService.getDefaultDisplayedBuffer(); bufferText.setText(String.valueOf(bufferSize)); super.performDefaults(); } }