Java tutorial
/* Copyright (C) 2006 NTT DATA Corporation This program is free software; you can redistribute it and/or Modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. */ package com.clustercontrol.preference; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.FieldEditorPreferencePage; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.IntegerFieldEditor; import org.eclipse.jface.preference.StringFieldEditor; import org.eclipse.swt.SWT; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Group; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import com.clustercontrol.ClusterControlPlugin; import com.clustercontrol.accesscontrol.util.ClientSession; import com.clustercontrol.bean.DataRangeConstant; import com.clustercontrol.util.EndpointManager; import com.clustercontrol.util.LoginManager; import com.clustercontrol.util.Messages; import com.clustercontrol.util.PasswordFieldEditor; import com.clustercontrol.util.WidgetTestUtil; /** * ?<BR> * * @version 1.0.0 * @since 1.0.0 */ public class ClusterControlCorePreferencePage extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { // private static Log m_log = LogFactory.getLog(ClusterControlCorePreferencePage.class); /** URL */ public static final String URL = LoginManager.KEY_URL; /** ? */ public static final String KEY_INTERVAL = LoginManager.KEY_INTERVAL; public static final String KEY_HTTP_REQUEST_TIMEOUT = LoginManager.KEY_HTTP_REQUEST_TIMEOUT; public static final int VALUE_INTERVAL_MAX = 60; public static final int VALUE_INTERVAL_MIN = 1; public static final int VALUE_HTTP_TIMEOUT_MAX = 600000; // ms = 600 s public static final int VALUE_HTTP_TIMEOUT_MIN = 1; // ms = 1 s /** Proxy */ public static final String KEY_PROXY_ENABLE = LoginManager.KEY_PROXY_ENABLE; public static final String KEY_PROXY_HOST = LoginManager.KEY_PROXY_HOST; public static final String KEY_PROXY_PORT = LoginManager.KEY_PROXY_PORT; public static final String KEY_PROXY_USER = LoginManager.KEY_PROXY_USER; public static final String KEY_PROXY_PASSWORD = LoginManager.KEY_PROXY_PASSWORD; public static final int VALUE_PROXY_PORT_MAX = 65535; public static final int VALUE_PROXY_PORT_MIN = 0; /** ? */ IntegerFieldEditor managerPollingInterval = null; /** HTTP */ IntegerFieldEditor httpRequestTimeout = null; /** Proxy???? */ BooleanFieldEditor proxyEnable = null; /** Proxy */ StringFieldEditor proxyHost = null; /** Proxy? */ IntegerFieldEditor proxyPort = null; /** Proxy */ StringFieldEditor proxyUser = null; /** Proxy */ PasswordFieldEditor proxyPassword = null; /** HTTPS */ StringFieldEditor keyStorePath = null; /** HTTPS */ PasswordFieldEditor keyStorePassword = null; /** * Set style */ public ClusterControlCorePreferencePage() { super(GRID); } /** * ??????? */ @Override public void init(IWorkbench workbench) { setPreferenceStore(ClusterControlPlugin.getDefault().getPreferenceStore()); } /** * ???? */ @Override public void createFieldEditors() { Composite parent = this.getFieldEditorParent(); GridData gridData = null; // Group group = new Group(parent, SWT.SHADOW_NONE); WidgetTestUtil.setTestId(this, "group", group); gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; gridData.horizontalSpan = 10; gridData.verticalSpan = 10; group.setLayoutData(gridData); group.setText(Messages.getString("connection.setting")); // managerPollingInterval = new IntegerFieldEditor(KEY_INTERVAL, Messages.getString("manager.polling.interval"), group); managerPollingInterval.setValidRange(VALUE_INTERVAL_MIN, VALUE_INTERVAL_MAX); String[] args1 = { Integer.toString(VALUE_INTERVAL_MIN), Integer.toString(VALUE_INTERVAL_MAX) }; managerPollingInterval.setErrorMessage(Messages.getString("message.hinemos.8", args1)); this.addField(managerPollingInterval); // HTTP String[] args2 = { Integer.toString(VALUE_HTTP_TIMEOUT_MIN), Integer.toString(VALUE_HTTP_TIMEOUT_MAX) }; httpRequestTimeout = new IntegerFieldEditor(KEY_HTTP_REQUEST_TIMEOUT, Messages.getString("connection.request.timeout"), group); httpRequestTimeout.setValidRange(VALUE_HTTP_TIMEOUT_MIN, VALUE_HTTP_TIMEOUT_MAX); httpRequestTimeout.setErrorMessage(Messages.getString("message.hinemos.8", args2)); this.addField(httpRequestTimeout); // Proxy Group proxyGroup = new Group(parent, SWT.SHADOW_NONE); WidgetTestUtil.setTestId(this, "proxygroup", proxyGroup); gridData = new GridData(); gridData.horizontalAlignment = GridData.FILL; gridData.grabExcessHorizontalSpace = true; gridData.horizontalSpan = 10; gridData.verticalSpan = 10; proxyGroup.setLayoutData(gridData); proxyGroup.setText(Messages.getString("proxy.connection.setting")); // Proxy/ proxyEnable = new BooleanFieldEditor(KEY_PROXY_ENABLE, Messages.getString("proxy.connection.enable"), proxyGroup); this.addField(proxyEnable); // Proxy proxyHost = new StringFieldEditor(KEY_PROXY_HOST, Messages.getString("proxy.connection.host"), proxyGroup); proxyHost.setTextLimit(DataRangeConstant.VARCHAR_256); this.addField(proxyHost); // Proxy? proxyPort = new IntegerFieldEditor(KEY_PROXY_PORT, Messages.getString("proxy.connection.port"), proxyGroup); proxyPort.setValidRange(VALUE_PROXY_PORT_MIN, VALUE_PROXY_PORT_MAX); String[] args3 = { Integer.toString(VALUE_PROXY_PORT_MIN), Integer.toString(VALUE_PROXY_PORT_MAX) }; proxyPort.setErrorMessage(Messages.getString("message.hinemos.8", args3)); this.addField(proxyPort); // Proxy proxyUser = new StringFieldEditor(KEY_PROXY_USER, Messages.getString("proxy.connection.user"), proxyGroup); proxyUser.setTextLimit(DataRangeConstant.VARCHAR_256); this.addField(proxyUser); // Proxy proxyPassword = new PasswordFieldEditor(KEY_PROXY_PASSWORD, Messages.getString("proxy.connection.password"), proxyGroup); proxyPassword.setTextLimit(DataRangeConstant.VARCHAR_256); this.addField(proxyPassword); } /* * (non-Javadoc) * * @see org.eclipse.jface.preference.IPreferencePage#performOk() */ @Override public boolean performOk() { m_log.trace("ClusterControlCorePreferencePage.performOk() start"); // ? ClientSession.restartChecktask(managerPollingInterval.getIntValue()); // JAX-WS? EndpointManager.setHttpRequestTimeout(httpRequestTimeout.getIntValue()); m_log.info("request.timeout=" + EndpointManager.getHttpRequestTimeout()); boolean result = super.performOk(); //?URL? IPreferenceStore store = this.getPreferenceStore(); store.getString(URL); LoginManager.setup(); return result; } }