Mercurial > hg > ltpda
diff m-toolbox/classes/@LTPDAprefs/cb_plotPrefsChanged.m @ 0:f0afece42f48
Import.
author | Daniele Nicolodi <nicolodi@science.unitn.it> |
---|---|
date | Wed, 23 Nov 2011 19:22:13 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/m-toolbox/classes/@LTPDAprefs/cb_plotPrefsChanged.m Wed Nov 23 19:22:13 2011 +0100 @@ -0,0 +1,99 @@ +% cb_addModelPath callback for adding a model path +% +% Parameters: +% first - LTPDAprefs object +% second - Source object (here: java PlotPrefGroup) +% third - Event Object (here: PropertyChangeEvent) +% +% Version: +% $Id: cb_plotPrefsChanged.m,v 1.7 2011/02/08 10:35:34 ingo Exp $ +% + +function cb_plotPrefsChanged(varargin) + + mLtpdaPrefs = varargin{1}; + jPlotPrefGroup = varargin{2}; + jPropChangeEvent = varargin{3}; + + jPropName = jPropChangeEvent.getPropertyName(); + jNewVal = jPropChangeEvent.getNewValue(); + + jPlotPrefs = jPlotPrefGroup.getPlotPrefs(); + + % Set the plot preferences only to the default-application-data if the + % user chose: 'Apply plot settings to all figures'. + if ~isempty(jPropName) && ... + (jPlotPrefs.getPlotApplyPlotSettings.equals(mpipeline.ltpdapreferences.EnumPlotSetting.ALL_FIGURES)) + + if mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_APPLY_PLOT_SETTINGS_CHANGED.equals(jPropName) + % Backup current plot settings + utils.plottools.backupDefaultPlotSettings(); + end + + if mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_DEFAULT_AXES_FONT_SIZE_CHANGED.equals(jPropName) || ... + mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_APPLY_PLOT_SETTINGS_CHANGED.equals(jPropName) + set(0, 'DefaultAxesFontSize', double(jPlotPrefs.getPlotDefaultAxesFontSize)); + end + + if mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_DEFAULT_AXES_LINE_WIDTH_CHANGED.equals(jPropName) || ... + mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_APPLY_PLOT_SETTINGS_CHANGED.equals(jPropName) + set(0, 'DefaultAxesLineWidth', double(jPlotPrefs.getPlotDefaultAxesLineWidth)); + end + + if mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_DEFAULT_LINE_LINE_WIDTH_CHANGED.equals(jPropName) || ... + mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_APPLY_PLOT_SETTINGS_CHANGED.equals(jPropName) + set(0, 'DefaultLineLineWidth', double(jPlotPrefs.getPlotDefaultLineLineWidth)); + end + + if mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_DEFAULT_LINE_MARKER_SIZE_CHANGED.equals(jPropName) || ... + mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_APPLY_PLOT_SETTINGS_CHANGED.equals(jPropName) + set(0, 'defaultlinemarkersize', double(jPlotPrefs.getPlotDefaultLineMarkerSize)); + end + + if mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_DEFAULT_AXES_GRID_LINE_STYLE_CHANGED.equals(jPropName) || ... + mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_APPLY_PLOT_SETTINGS_CHANGED.equals(jPropName) + set(0, 'DefaultAxesGridLineStyle', char(jPlotPrefs.getPlotDefaultAxesGridLineStyle)); + end + + if mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_DEFAULT_AXES_MINOR_GRID_LINE_STYLE_CHANGED.equals(jPropName) || ... + mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_APPLY_PLOT_SETTINGS_CHANGED.equals(jPropName) + set(0, 'DefaultAxesMinorGridLineStyle', char(jPlotPrefs.getPlotDefaultAxesMinorGridLineStyle)); + end + + if mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_DEFAULT_AXES_FONT_WEIGHT_CHANGED.equals(jPropName) || ... + mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_APPLY_PLOT_SETTINGS_CHANGED.equals(jPropName) + switch lower(char(jPlotPrefs.getPlotDefaultAxesFontWeight)) + case 'plain' + set(0, 'DefaultAxesFontWeight', 'normal'); + case 'bold' + set(0, 'DefaultAxesFontWeight', 'bold'); + case 'italic' + set(0, 'DefaultAxesFontWeight', 'light'); + case 'bold italic' + set(0, 'DefaultAxesFontWeight', 'demi'); + otherwise + error('### Unknown value (%s) for the default axes property ''FontWeight''', char(jPlotPrefs.getPlotDefaultAxesFontWeight)); + end + end + + if mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_DEFAULT_LEGEND_FONT_SIZE_CHANGED.equals(jPropName) || ... + mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_APPLY_PLOT_SETTINGS_CHANGED.equals(jPropName) + % Nothing to do. There doesn't exist any application value. + % We have to change the axis-handle of the legend. + % There exist only a general axes-font-size and not a special for the legends. + end + + if mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_INCLUDE_DESCRIPTION_CHANGED.equals(jPropName) || ... + mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_APPLY_PLOT_SETTINGS_CHANGED.equals(jPropName) + % Nothing to do. There doesn't exist any application value. + end + + else + % Restore MATLAB plot setting only if the user changed 'Apply plot settings: ...' + if mpipeline.ltpdapreferences.PlotPrefGroup.PLOT_APPLY_PLOT_SETTINGS_CHANGED.equals(jPropName) + warning('LTPDA:cb_plotPrefsChanged', '!!! Recover MATLAB''s default plot settings.'); + utils.plottools.restoreDefaultPlotSettings(); + end + end + +end