Skip to content

Commit

Permalink
add preference initializer
Browse files Browse the repository at this point in the history
  • Loading branch information
MandKastner committed Jan 29, 2025
1 parent 076a285 commit 6276cf6
Show file tree
Hide file tree
Showing 8 changed files with 65 additions and 51 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
import org.eclipse.fordiac.ide.export.ICompareEditorOpener;
import org.eclipse.fordiac.ide.export.ui.Messages;
import org.eclipse.fordiac.ide.export.utils.CompareEditorOpenerUtil;
import org.eclipse.fordiac.ide.export.utils.PreferenceConstants;
import org.eclipse.fordiac.ide.export.utils.ExportPreferenceConstants;
import org.eclipse.jface.preference.ComboFieldEditor;
import org.eclipse.jface.preference.FieldEditorPreferencePage;
import org.eclipse.swt.SWT;
Expand All @@ -41,7 +41,7 @@ public class FORTEExportPreferences extends FieldEditorPreferencePage implements
*/
public FORTEExportPreferences() {
super(GRID);
setPreferenceStore(new ScopedPreferenceStore(InstanceScope.INSTANCE, "org.eclipse.fordiac.ide.export")); //$NON-NLS-1$
setPreferenceStore(new ScopedPreferenceStore(InstanceScope.INSTANCE, ExportPreferenceConstants.NODE_ID));
}

/**
Expand All @@ -57,7 +57,8 @@ public void createFieldEditors() {
compare.setText(Messages.FORTEExportPreferences_CompareEditorForMerging);
final GridLayout compareLayout = new GridLayout(2, false);

final Map<String, ICompareEditorOpener> compareEditorOpeners = CompareEditorOpenerUtil.getCompareEditorOpeners();
final Map<String, ICompareEditorOpener> compareEditorOpeners = CompareEditorOpenerUtil
.getCompareEditorOpeners();

final Set<String> keySet = compareEditorOpeners.keySet();
final String[][] nameArray = new String[keySet.size()][2];
Expand All @@ -68,7 +69,7 @@ public void createFieldEditors() {
i++;
}

final ComboFieldEditor compareEditor = new ComboFieldEditor(PreferenceConstants.P_COMPARE_EDITOR,
final ComboFieldEditor compareEditor = new ComboFieldEditor(ExportPreferenceConstants.P_COMPARE_EDITOR,
Messages.FORTEExportPreferences_DefaultCompareEditorOpener, nameArray, compare);
addField(compareEditor);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.eclipse.fordiac.ide.export.utils.PreferenceConstants;
import org.eclipse.fordiac.ide.export.utils.ExportPreferenceConstants;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ui.preferences.ScopedPreferenceStore;

Expand All @@ -33,8 +33,8 @@ public class PreferenceInitializer extends AbstractPreferenceInitializer {
@Override
public void initializeDefaultPreferences() {
final IPreferenceStore store = new ScopedPreferenceStore(InstanceScope.INSTANCE,
"org.eclipse.fordiac.ide.export"); //$NON-NLS-1$
store.setDefault(PreferenceConstants.P_COMPARE_EDITOR, "None"); //$NON-NLS-1$
ExportPreferenceConstants.NODE_ID);
store.setDefault(ExportPreferenceConstants.P_COMPARE_EDITOR, "None"); //$NON-NLS-1$
}

}
8 changes: 7 additions & 1 deletion plugins/org.eclipse.fordiac.ide.export/plugin.xml
Original file line number Diff line number Diff line change
Expand Up @@ -22,5 +22,11 @@
id="org.eclipse.fordiac.ide.export.settingspage"
name="Automatic Type Export Settings">
</page>
</extension>
</extension>
<extension
point="org.eclipse.core.runtime.preferences">
<initializer
class="org.eclipse.fordiac.ide.export.properties.PreferenceInitializer">
</initializer>
</extension>
</plugin>
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import org.eclipse.core.resources.ProjectScope;
import org.eclipse.core.runtime.Adapters;
import org.eclipse.fordiac.ide.export.Messages;
import org.eclipse.fordiac.ide.export.utils.ExportPreferenceConstants;
import org.eclipse.jface.layout.GridDataFactory;
import org.eclipse.jface.layout.GridLayoutFactory;
import org.eclipse.jface.preference.BooleanFieldEditor;
Expand All @@ -34,8 +35,6 @@

public class AutomaticTypeExportPropertyPage extends PropertyPage {

private final String NODE_ID = "automatic.type.export"; //$NON-NLS-1$

private DirectoryFieldEditor directoryEditor;
private BooleanFieldEditor checkboxEditor;
private Composite directoryEditorParent;
Expand All @@ -54,7 +53,7 @@ private Composite createEnableCheckbox(final Composite parent) {
final Composite composite = new Composite(parent, SWT.NONE);
GridLayoutFactory.swtDefaults().numColumns(2).applyTo(composite);

this.checkboxEditor = new BooleanFieldEditor(ITypeExportPreferenceConstants.ENABLE_AUTOMATIC_TYPE_EXPORT,
this.checkboxEditor = new BooleanFieldEditor(ExportPreferenceConstants.ENABLE_AUTOMATIC_TYPE_EXPORT,
Messages.AutomaticTypeExport_Enable, composite);

checkboxEditor.setPreferenceStore(getPreferenceStore());
Expand All @@ -74,34 +73,28 @@ public void widgetSelected(final SelectionEvent e) {

@Override
protected void performDefaults() {
directoryEditor.loadDefault();
checkboxEditor.loadDefault();
checkboxEditor.setEnabled(false, directoryEditorParent);
directoryEditor.loadDefault();
directoryEditor.setEnabled(checkboxEditor.getBooleanValue(), directoryEditorParent);
super.performDefaults();
}

private void createDirectoryEditor(final Composite parent) {
// default directory for external module directory
directoryEditorParent = new Composite(parent, SWT.NONE);
GridDataFactory.fillDefaults().applyTo(directoryEditorParent);
this.directoryEditor = new DirectoryFieldEditor(ITypeExportPreferenceConstants.EXTERNAL_MODULES_PATH,
this.directoryEditor = new DirectoryFieldEditor(ExportPreferenceConstants.EXTERNAL_MODULES_PATH,
Messages.AutomaticTypeExport_ExternalModulesDirectory, directoryEditorParent);
this.directoryEditor.setPreferenceStore(getPreferenceStore());
directoryEditor.load();
directoryEditor.setEnabled(
getPreferenceStore().getBoolean(ITypeExportPreferenceConstants.ENABLE_AUTOMATIC_TYPE_EXPORT),
getPreferenceStore().getBoolean(ExportPreferenceConstants.ENABLE_AUTOMATIC_TYPE_EXPORT),
directoryEditorParent);
}

@Override
protected IPreferenceStore doGetPreferenceStore() {
final ProjectScope projectScope = new ProjectScope(getProject());
final IPreferenceStore store = new ScopedPreferenceStore(projectScope, NODE_ID);
store.setDefault(ITypeExportPreferenceConstants.ENABLE_AUTOMATIC_TYPE_EXPORT, false);
// TODO use path to external module directory (created by create Project) here
// as default
store.setDefault(ITypeExportPreferenceConstants.EXTERNAL_MODULES_PATH, getProject().getFullPath().toString());
return store;
return new ScopedPreferenceStore(projectScope, ExportPreferenceConstants.NODE_ID);
}

@Override
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
/*******************************************************************************
* Copyright (c) 2025 Primetals Technologies Austria GmbH
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Mario Kastner
* - initial API and implementation and/or initial documentation
*******************************************************************************/
package org.eclipse.fordiac.ide.export.properties;

import org.eclipse.core.runtime.preferences.AbstractPreferenceInitializer;
import org.eclipse.core.runtime.preferences.DefaultScope;
import org.eclipse.fordiac.ide.export.utils.ExportPreferenceConstants;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.ui.preferences.ScopedPreferenceStore;

public class PreferenceInitializer extends AbstractPreferenceInitializer {
@Override
public void initializeDefaultPreferences() {
final IPreferenceStore store = new ScopedPreferenceStore(DefaultScope.INSTANCE,
ExportPreferenceConstants.NODE_ID);
store.setDefault(ExportPreferenceConstants.ENABLE_AUTOMATIC_TYPE_EXPORT, false);
store.setDefault(ExportPreferenceConstants.EXTERNAL_MODULES_PATH, "");
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,7 @@ public static Map<String, ICompareEditorOpener> getCompareEditorOpeners() {
try {
final Object object = element.createExecutableExtension("class"); //$NON-NLS-1$
final String name = element.getAttribute("name"); //$NON-NLS-1$
if (object instanceof ICompareEditorOpener) {
final ICompareEditorOpener compareEditorOpener = (ICompareEditorOpener) object;
if (object instanceof final ICompareEditorOpener compareEditorOpener) {
openers.put(name, compareEditorOpener);
}
} catch (final CoreException corex) {
Expand All @@ -71,8 +70,8 @@ public static Map<String, ICompareEditorOpener> getCompareEditorOpeners() {
* @return the opener
*/
public static ICompareEditorOpener getOpener() {
final IEclipsePreferences preferences = InstanceScope.INSTANCE.getNode("org.eclipse.fordiac.ide.export"); //$NON-NLS-1$
final String compareEditor = preferences.get(PreferenceConstants.P_COMPARE_EDITOR, ""); //$NON-NLS-1$
final IEclipsePreferences preferences = InstanceScope.INSTANCE.getNode(ExportPreferenceConstants.NODE_ID);
final String compareEditor = preferences.get(ExportPreferenceConstants.P_COMPARE_EDITOR, ""); //$NON-NLS-1$
final Map<String, ICompareEditorOpener> openers = getCompareEditorOpeners();
ICompareEditorOpener opener = openers.get(compareEditor);
if (opener == null && openers.size() >= 1) { // simply use the first compare
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/*******************************************************************************
* Copyright (c) 2009 Profactor GmbH
*
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
Expand All @@ -16,13 +16,19 @@
/**
* Constant definitions.
*/
public final class PreferenceConstants {
public final class ExportPreferenceConstants {

private PreferenceConstants() {
private ExportPreferenceConstants() {
/* Util class shall not have a public ctor */
}

public static final String NODE_ID = "org.eclipse.fordiac.ide.export"; //$NON-NLS-1$

/** The Constant for the Compare Editor Preference. */
public static final String P_COMPARE_EDITOR = "compareeditor"; //$NON-NLS-1$

/** The Constants for Automatic Type Export Preferences */
public static final String ENABLE_AUTOMATIC_TYPE_EXPORT = "ENABLE_AUTOMATIC_TYPE_EXPORT"; //$NON-NLS-1$
public static final String EXTERNAL_MODULES_PATH = "EXTERNAL_MODULES_PATH"; //$NON-NLS-1$

}

0 comments on commit 6276cf6

Please sign in to comment.