/** * Copyright 2010 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.eclipse.task.preferences; import org.drools.eclipse.task.Activator; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.preference.IPreferenceStore; import org.eclipse.jface.preference.PreferencePage; import org.eclipse.swt.SWT; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Label; import org.eclipse.swt.widgets.Text; import org.eclipse.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; public class DroolsTaskPreferencePage extends PreferencePage implements IWorkbenchPreferencePage { private Text ipAddressText; private Text portText; private Text languageText; protected Control createContents(Composite parent) { ipAddressText = createText(parent, "IP address"); portText = createText(parent, "Port"); languageText = createText(parent, "Language"); initializeValues(); return new Composite(parent, SWT.NULL); } private Text createText(Composite group, String labelText) { Label label = new Label(group, SWT.NONE); label.setText(labelText); Text text = new Text(group, SWT.NONE); return text; } protected IPreferenceStore doGetPreferenceStore() { return Activator.getDefault().getPreferenceStore(); } private void initializeDefaults() { IPreferenceStore store = getPreferenceStore(); ipAddressText.setText(store.getDefaultString(DroolsTaskConstants.SERVER_IP_ADDRESS)); portText.setText(store.getDefaultInt(DroolsTaskConstants.SERVER_PORT) + ""); languageText.setText(store.getDefaultString(DroolsTaskConstants.LANGUAGE)); } private void initializeValues() { IPreferenceStore store = getPreferenceStore(); ipAddressText.setText(store.getString(DroolsTaskConstants.SERVER_IP_ADDRESS)); portText.setText(store.getInt(DroolsTaskConstants.SERVER_PORT) + ""); languageText.setText(store.getString(DroolsTaskConstants.LANGUAGE)); } protected void performDefaults() { super.performDefaults(); initializeDefaults(); } public boolean performOk() { storeValues(); Activator.getDefault().savePluginPreferences(); return true; } private void storeValues() { try { Integer port = new Integer(portText.getText()); IPreferenceStore store = getPreferenceStore(); store.setValue(DroolsTaskConstants.SERVER_IP_ADDRESS, ipAddressText.getText()); store.setValue(DroolsTaskConstants.SERVER_PORT, port); store.setValue(DroolsTaskConstants.LANGUAGE, languageText.getText()); } catch (NumberFormatException e) { showMessage("Could not convert port, should be an integer value."); } } public void init(IWorkbench workbench) { // do nothing } private void showMessage(String message) { MessageDialog.openInformation( getControl().getShell(), "Task View", message); } }