package org.goko.core.rs274ngcv3;
import org.eclipse.jface.util.PropertyChangeEvent;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.goko.common.GkUiUtils;
import org.goko.common.preferences.GkFieldEditorPreferencesPage;
import org.goko.common.preferences.fieldeditor.preference.BooleanFieldEditor;
import org.goko.common.preferences.fieldeditor.preference.IntegerFieldEditor;
import org.goko.core.common.exception.GkException;
import org.goko.core.rs274ngcv3.config.RS274Preference;
public class RS274GCodePreferences extends GkFieldEditorPreferencesPage{
private BooleanFieldEditor truncateEnabledEditor;
private IntegerFieldEditor decimalCountEditor;
public RS274GCodePreferences() {
setTitle("GCode");
setPreferenceStore(RS274Preference.getInstance());
}
@Override
protected void createPreferencePage(Composite parent) {
Composite content = new Composite(parent, SWT.NONE);
content.setLayout(new GridLayout(1, false));
truncateEnabledEditor = new BooleanFieldEditor(content, SWT.NONE);
truncateEnabledEditor.setPreferenceName(RS274Preference.KEY_TRUNCATE_ENABLED);
truncateEnabledEditor.setLabel("Truncate decimal");
decimalCountEditor = new IntegerFieldEditor(parent, SWT.NONE);
decimalCountEditor.setEmptyStringAllowed(false);
decimalCountEditor.setLabel("Decimal count :");
decimalCountEditor.setWidthInChars(5);
decimalCountEditor.setPreferenceName(RS274Preference.KEY_DECIMAL_COUNT);
addField(truncateEnabledEditor);
addField(decimalCountEditor);
}
protected void validate() {
super.validate();
};
/** (inheritDoc)
* @see org.goko.common.preferences.GkFieldEditorPreferencesPage#postInitialize()
*/
@Override
protected void postInitialize() throws GkException {
GkUiUtils.setEnabled(decimalCountEditor, truncateEnabledEditor.isSelected());
decimalCountEditor.setEmptyStringAllowed(truncateEnabledEditor.isSelected());
}
/** (inheritDoc)
* @see org.goko.common.preferences.GkFieldEditorPreferencesPage#propertyChange(org.eclipse.jface.util.PropertyChangeEvent)
*/
@Override
public void propertyChange(PropertyChangeEvent event) {
decimalCountEditor.setEmptyStringAllowed(!truncateEnabledEditor.isSelected());
GkUiUtils.setEnabled(decimalCountEditor, truncateEnabledEditor.isSelected());
super.propertyChange(event);
}
}