/* * #%~ * Combinatorial Testing * %% * Copyright (C) 2008 - 2014 Overture * %% * 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, either version 3 of the * License, or (at your option) any later version. * * 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. * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. * #~% */ package org.overture.ide.plugins.combinatorialtesting.preferences; import java.util.ArrayList; import java.util.List; import org.eclipse.jface.preference.BooleanFieldEditor; import org.eclipse.jface.preference.ComboFieldEditor; 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.ui.IWorkbench; import org.eclipse.ui.IWorkbenchPreferencePage; import org.overture.ide.debug.core.IDebugConstants; import org.overture.ide.plugins.combinatorialtesting.ITracesConstants; import org.overture.ide.plugins.combinatorialtesting.OvertureTracesPlugin; import org.overture.interpreter.traces.TraceReductionType; public class WorkbenchPreferencePageMain extends FieldEditorPreferencePage implements IWorkbenchPreferencePage { private ComboFieldEditor createTraceReductionTypeCombo() { TraceReductionType[] values = TraceReductionType.values(); List<TraceReductionType> toShow = new ArrayList<TraceReductionType>(); for (int i = 0; i < values.length; i++) { if (values[i] != TraceReductionType.NONE) { toShow.add(values[i]); } } final String[][] contents = new String[toShow.size()][1]; for (int i = 0; i < toShow.size(); i++) { TraceReductionType current = toShow.get(i); contents[i] = new String[] { current.getDisplayName(), "" + current.ordinal() }; } final ComboFieldEditor traceReductionType = new ComboFieldEditor(ITracesConstants.TRACE_REDUCTION_TYPE, "Trace reduction type", contents, getFieldEditorParent()); return traceReductionType; } @Override protected void createFieldEditors() { addField(new BooleanFieldEditor(ITracesConstants.REMOTE_DEBUG_PREFERENCE, "Enable remote debug", getFieldEditorParent())); addField(new BooleanFieldEditor(ITracesConstants.REMOTE_DEBUG_FIXED_PORT, "Use fixed port for remote debug", getFieldEditorParent())); addField(createTraceReductionTypeCombo()); IntegerFieldEditor traceFilteringSeed = new IntegerFieldEditor(ITracesConstants.TRACE_SEED, "Trace filtering seed", getFieldEditorParent()); traceFilteringSeed.setValidRange(Integer.MIN_VALUE, Integer.MAX_VALUE); addField(traceFilteringSeed); IntegerFieldEditor subsetLimitation = new IntegerFieldEditor(ITracesConstants.TRACE_SUBSET_LIMITATION, "Subset limitation (%)", getFieldEditorParent()); subsetLimitation.setValidRange(1, 100); addField(subsetLimitation); addField(new StringFieldEditor(IDebugConstants.VDM_LAUNCH_CONFIG_VM_MEMORY_OPTION, "Additional VM arguments:", getFieldEditorParent())); } @Override protected IPreferenceStore doGetPreferenceStore() { return OvertureTracesPlugin.getDefault().getPreferenceStore(); } @Override protected void performDefaults() { super.performDefaults(); IPreferenceStore store = getPreferenceStore(); OvertureTracesPlugin.initializeDefaultMainPreferences(store); } public void init(IWorkbench workbench) { IPreferenceStore store = getPreferenceStore(); OvertureTracesPlugin.initializeDefaultMainPreferences(store); } }