package org.goko.controller.g2core.preferences; import org.apache.commons.lang3.BooleanUtils; import org.apache.commons.lang3.StringUtils; import org.goko.core.config.GkPreference; public class G2CorePreferences extends GkPreference{ public static final String NODE = "org.goko.controller.g2core"; public static final String HOMING_ENABLED_AXIS_X = "homingEnabledAxisX"; public static final String HOMING_ENABLED_AXIS_Y = "homingEnabledAxisY"; public static final String HOMING_ENABLED_AXIS_Z = "homingEnabledAxisZ"; public static final String HOMING_ENABLED_AXIS_A = "homingEnabledAxisA"; public static final String PLANNER_BUFFER_SPACE_CHECK = "plannerBufferSpaceCheck"; public static final String STATUS_REPORT_MACHINE_STATE = "srMachineState"; public static final String STATUS_REPORT_VELOCITY = "srVelocity"; public static final String STATUS_REPORT_FEEDRATE = "srFeedrate"; public static final String STATUS_REPORT_UNITS = "srUnits"; public static final String STATUS_REPORT_COORDINATE_SYSTEM = "srCoordinateSystem"; public static final String STATUS_REPORT_MOTION_MODE = "srMotionMode"; public static final String STATUS_REPORT_PLANE = "srPlane"; public static final String STATUS_REPORT_PATH_CONTROL = "srPathControl"; public static final String STATUS_REPORT_DISTANCE_MODE = "srDistanceMode"; public static final String STATUS_REPORT_ARC_DISTANCE_MODE = "srArcDistanceMode"; public static final String STATUS_REPORT_FEEDRATE_MODE = "srFeedrateMode"; public static final String STATUS_REPORT_TOOL = "srTool"; public static final String STATUS_REPORT_G92 = "srG92"; public static final String STATUS_REPORT_POS_X = "srPosX"; public static final String STATUS_REPORT_POS_Y = "srPosY"; public static final String STATUS_REPORT_POS_Z = "srPosZ"; public static final String STATUS_REPORT_POS_A = "srPosA"; public static final String STATUS_REPORT_POS_B = "srPosB"; public static final String STATUS_REPORT_POS_C = "srPosC"; public static final String STATUS_REPORT_WPOS = "srWPos"; public static final String STATUS_REPORT_MPOS = "srMPos"; private static G2CorePreferences instance; private G2CorePreferences(){ super(NODE); } public static G2CorePreferences getInstance() { if(instance == null){ instance = new G2CorePreferences(); instance.initialiseValues(); } return instance; } private void initialiseValues() { if(StringUtils.isBlank(getPreferenceStore().getString(HOMING_ENABLED_AXIS_X))){ getPreferenceStore().setToDefault(HOMING_ENABLED_AXIS_X); } if(StringUtils.isBlank(getPreferenceStore().getString(HOMING_ENABLED_AXIS_Y))){ getPreferenceStore().setToDefault(HOMING_ENABLED_AXIS_Y); } if(StringUtils.isBlank(getPreferenceStore().getString(HOMING_ENABLED_AXIS_Z))){ getPreferenceStore().setToDefault(HOMING_ENABLED_AXIS_Z); } if(StringUtils.isBlank(getPreferenceStore().getString(HOMING_ENABLED_AXIS_A))){ getPreferenceStore().setToDefault(HOMING_ENABLED_AXIS_A); } if(StringUtils.isBlank(getPreferenceStore().getString(PLANNER_BUFFER_SPACE_CHECK))){ getPreferenceStore().setToDefault(PLANNER_BUFFER_SPACE_CHECK); } } public boolean isHomingConfigured() { return isHomingEnabledAxisX() || isHomingEnabledAxisY() || isHomingEnabledAxisZ() || isHomingEnabledAxisA(); } public boolean isHomingEnabledAxisX() { return BooleanUtils.toBoolean(getPreferenceStore().getString(HOMING_ENABLED_AXIS_X)); } public void setHomingEnabledAxisX(boolean enabled) { getPreferenceStore().setValue(HOMING_ENABLED_AXIS_X, Boolean.valueOf(enabled)); } public boolean isHomingEnabledAxisY() { return BooleanUtils.toBoolean(getPreferenceStore().getString(HOMING_ENABLED_AXIS_Y)); } public void setHomingEnabledAxisY(boolean enabled) { getPreferenceStore().setValue(HOMING_ENABLED_AXIS_Y, Boolean.valueOf(enabled)); } public boolean isHomingEnabledAxisZ() { return BooleanUtils.toBoolean(getPreferenceStore().getString(HOMING_ENABLED_AXIS_Z)); } public void setHomingEnabledAxisZ(boolean enabled) { getPreferenceStore().setValue(HOMING_ENABLED_AXIS_Z, Boolean.valueOf(enabled)); } public boolean isHomingEnabledAxisA() { return BooleanUtils.toBoolean(getPreferenceStore().getString(HOMING_ENABLED_AXIS_A)); } public void setHomingEnabledAxisA(boolean enabled) { getPreferenceStore().setValue(HOMING_ENABLED_AXIS_A, Boolean.valueOf(enabled)); } public boolean isPlannerBufferSpaceCheck() { return BooleanUtils.toBoolean(getPreferenceStore().getString(PLANNER_BUFFER_SPACE_CHECK)); } public void setPlannerBufferSpaceCheck(boolean enabled) { getPreferenceStore().setValue(PLANNER_BUFFER_SPACE_CHECK, Boolean.valueOf(enabled)); } }