blob: b216e6770af7a2fc0986d37967196efb716fd898 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2014 Formal Mind GmbH, University of Duesseldorf and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Michael Jastram - initial API and implementation
*******************************************************************************/
package org.eclipse.rmf.reqif10.pror.editor.preferences;
import java.util.Map;
import org.eclipse.jface.preference.ComboFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.rmf.reqif10.pror.configuration.ProrPresentationConfiguration;
import org.eclipse.rmf.reqif10.pror.edit.presentation.service.PresentationInterface;
import org.eclipse.rmf.reqif10.pror.editor.presentation.Reqif10EditorPlugin;
import org.eclipse.rmf.reqif10.pror.editor.presentation.service.PresentationServiceManager;
import org.eclipse.rmf.reqif10.pror.util.ProrUtil;
import org.eclipse.ui.IWorkbench;
import org.eclipse.ui.IWorkbenchPreferencePage;
public class ProrDefaultPresentationPage extends FieldEditorPreferencePage
implements IWorkbenchPreferencePage {
@Override
protected void createFieldEditors() {
setField(PreferenceConstants.P_DEFAULT_PRESENTATION_STRING, "String");
setField(PreferenceConstants.P_DEFAULT_PRESENTATION_XHTML, "XHTML");
setField(PreferenceConstants.P_DEFAULT_PRESENTATION_REAL, "Real");
setField(PreferenceConstants.P_DEFAULT_PRESENTATION_INTEGER, "Integer");
setField(PreferenceConstants.P_DEFAULT_PRESENTATION_ENUMERATION,
"Enumeration");
setField(PreferenceConstants.P_DEFAULT_PRESENTATION_BOOLEAN, "Boolean");
setField(PreferenceConstants.P_DEFAULT_PRESENTATION_DATE, "Date");
}
private void setField(String fieldName, String label) {
addField(new ComboFieldEditor(fieldName, label,
getEntryNamesAndValues(), getFieldEditorParent()));
}
private String[][] getEntryNamesAndValues() {
Map<Class<? extends ProrPresentationConfiguration>, PresentationInterface> presentationMap = PresentationServiceManager
.getPresentationInterfaceMap();
String[][] result = new String[presentationMap.size() + 2][2];
result[0][0] = "None";
result[0][1] = "";
result[1][0] = "Use Build-in";
result[1][1] = PreferenceConstants.P_DEFAULT_PRESENTATION_BUILD_IN;
int i = 2;
for (@SuppressWarnings("rawtypes")
Class key : presentationMap.keySet()) {
result[i][0] = ProrUtil.substractPrefixPostfix(key,
"", "ConfigurationImpl");
result[i][1] = key.getCanonicalName();
i++;
}
return result;
}
@Override
public boolean performOk() {
PresentationServiceManager.clearDefaultRenderers();
return super.performOk();
}
public void init(IWorkbench workbench) {
// Set preference store
setPreferenceStore(Reqif10EditorPlugin.getPlugin().getPreferenceStore());
setDescription("IMPORTANT: currently, no test with respect to type mismatch is performed.");
}
}