From f563272ed713b180cccae7cd2b59cedcb2fe332c Mon Sep 17 00:00:00 2001 From: Lewin Probst <info@emirror.de> Date: Sun, 28 Jun 2020 13:26:13 +0200 Subject: [PATCH] The soundsource combination panel now shows the segment color as background if the "Update track parameter" is enabled in trajectory output. --- VERSION | 2 +- .../+parameter/addSoundsourceCombination.m | 4 ++ .../addSoundsourceCombinationAbove.m | 4 ++ .../adjustTableColorsToTrajectory.m | 25 ++++++++ .../duplicateSoundsourceCombination.m | 4 ++ .../+parameter/removeSoundsourceCombination.m | 4 ++ .../+parameter/resetSoundsourceCombinations.m | 4 ++ .../+controller/+track/+parameter/updateGui.m | 8 +++ .../+track/+trajectoryOutput/open.m | 52 +--------------- .../+track/+trajectoryOutput/updateGui.m | 60 +++++++++++++++++++ 10 files changed, 115 insertions(+), 52 deletions(-) create mode 100644 lib/+artoa/+controller/+track/+parameter/adjustTableColorsToTrajectory.m create mode 100644 lib/+artoa/+controller/+track/+trajectoryOutput/updateGui.m diff --git a/VERSION b/VERSION index 9754915..ddc17b2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -259 \ No newline at end of file +260 \ No newline at end of file diff --git a/lib/+artoa/+controller/+track/+parameter/addSoundsourceCombination.m b/lib/+artoa/+controller/+track/+parameter/addSoundsourceCombination.m index 7ece7da..af87383 100644 --- a/lib/+artoa/+controller/+track/+parameter/addSoundsourceCombination.m +++ b/lib/+artoa/+controller/+track/+parameter/addSoundsourceCombination.m @@ -5,6 +5,9 @@ function [] = addSoundsourceCombination(~, ~) global artoaWorkspace; +%% Disable updating of track parameter +artoaWorkspace.trajectoryOutput.updateTrackParameterWindow = false; + %% Insert default content artoaWorkspace.trackParameter.soundsourceCombinations(end + 1, :) = artoa.controller.track.parameter.getDefaultCombinationCell(); try @@ -14,6 +17,7 @@ end %% Update gui artoa.controller.track.parameter.updateGui(); +artoa.controller.track.trajectoryOutput.updateGui(); end diff --git a/lib/+artoa/+controller/+track/+parameter/addSoundsourceCombinationAbove.m b/lib/+artoa/+controller/+track/+parameter/addSoundsourceCombinationAbove.m index 9da8cec..f2b2cd1 100644 --- a/lib/+artoa/+controller/+track/+parameter/addSoundsourceCombinationAbove.m +++ b/lib/+artoa/+controller/+track/+parameter/addSoundsourceCombinationAbove.m @@ -5,6 +5,9 @@ function [] = addSoundsourceCombinationAbove(~, ~) global artoaWorkspace; +%% Disable updating of track parameter +artoaWorkspace.trajectoryOutput.updateTrackParameterWindow = false; + %% Get selection selectedRow = artoaWorkspace.trackParameter.selectedSoundsourceCombinationRow; %% Get current data @@ -33,6 +36,7 @@ artoaWorkspace.trackParameter.soundsourceCombinations = combinations; %% Update gui artoa.controller.track.parameter.updateGui(); +artoa.controller.track.trajectoryOutput.updateGui(); end diff --git a/lib/+artoa/+controller/+track/+parameter/adjustTableColorsToTrajectory.m b/lib/+artoa/+controller/+track/+parameter/adjustTableColorsToTrajectory.m new file mode 100644 index 0000000..fcaf3f5 --- /dev/null +++ b/lib/+artoa/+controller/+track/+parameter/adjustTableColorsToTrajectory.m @@ -0,0 +1,25 @@ +function [] = adjustTableColorsToTrajectory(pTrajectory) +%ADJUSTTABLECOLORSTOTRAJECTORY Summary of this function goes here +% Detailed explanation goes here + +global artoaGui artoaWorkspace; + +if nargin == 0 | ~artoaWorkspace.trajectoryOutput.updateTrackParameterWindow + artoaGui.trackParameter.tableSoundSourceCombinations.BackgroundColor = [1 1 1]; + return; +end + + +%% Get required variables +segmentCount = length(pTrajectory.segmentSize); + +%% Get colors +trajectoryColors = fliplr(jet(round(length(pTrajectory.segmentSize) * 1.5))); + +colorArray = trajectoryColors(1:segmentCount, :); + +%% Update table +artoaGui.trackParameter.tableSoundSourceCombinations.BackgroundColor = colorArray; + +end + diff --git a/lib/+artoa/+controller/+track/+parameter/duplicateSoundsourceCombination.m b/lib/+artoa/+controller/+track/+parameter/duplicateSoundsourceCombination.m index 93b8959..1267e6a 100644 --- a/lib/+artoa/+controller/+track/+parameter/duplicateSoundsourceCombination.m +++ b/lib/+artoa/+controller/+track/+parameter/duplicateSoundsourceCombination.m @@ -5,6 +5,9 @@ function [] = duplicateSoundsourceCombination(~, ~) global artoaWorkspace artoaGui; +%% Disable updating of track parameter +artoaWorkspace.trajectoryOutput.updateTrackParameterWindow = false; + %% Get column count columnCount = size(artoaWorkspace.trackParameter.soundsourceCombinations, 2); %% Get selection @@ -22,6 +25,7 @@ artoaWorkspace.trackParameter.soundsourceCombinations = combinationTable; %% Update gui artoa.controller.track.parameter.updateGui(); +artoa.controller.track.trajectoryOutput.updateGui(); end diff --git a/lib/+artoa/+controller/+track/+parameter/removeSoundsourceCombination.m b/lib/+artoa/+controller/+track/+parameter/removeSoundsourceCombination.m index 3bb108d..b6370d6 100644 --- a/lib/+artoa/+controller/+track/+parameter/removeSoundsourceCombination.m +++ b/lib/+artoa/+controller/+track/+parameter/removeSoundsourceCombination.m @@ -5,6 +5,9 @@ function [] = removeSoundsourceCombination(~, ~) global artoaWorkspace; +%% Disable updating of track parameter +artoaWorkspace.trajectoryOutput.updateTrackParameterWindow = false; + if ~artoa.data.hasMember(artoaWorkspace, 'trackParameter', 'selectedSoundsourceCombinationRow') return; end @@ -17,6 +20,7 @@ artoaWorkspace.trackParameter.soundsourceCombinations(selectedRow, :) = []; %% Update gui artoa.controller.track.parameter.updateGui(); +artoa.controller.track.trajectoryOutput.updateGui(); end diff --git a/lib/+artoa/+controller/+track/+parameter/resetSoundsourceCombinations.m b/lib/+artoa/+controller/+track/+parameter/resetSoundsourceCombinations.m index caba421..8a6b024 100644 --- a/lib/+artoa/+controller/+track/+parameter/resetSoundsourceCombinations.m +++ b/lib/+artoa/+controller/+track/+parameter/resetSoundsourceCombinations.m @@ -8,6 +8,9 @@ if strcmp(questdlg('Reset all combinations?', 'Confirmation', 'Yes', 'Cancel', ' return; end +%% Disable updating of track parameter +artoaWorkspace.trajectoryOutput.updateTrackParameterWindow = false; + %% Delete from workspace artoaWorkspace.trackParameter.soundsourceCombinations = ... artoa.controller.track.parameter.createCombinationsTable( ... @@ -16,6 +19,7 @@ artoaWorkspace.trackParameter.soundsourceCombinations = ... %% Update gui artoa.controller.track.parameter.updateGui(); +artoa.controller.track.trajectoryOutput.updateGui(); end diff --git a/lib/+artoa/+controller/+track/+parameter/updateGui.m b/lib/+artoa/+controller/+track/+parameter/updateGui.m index 71737b2..8efb53a 100644 --- a/lib/+artoa/+controller/+track/+parameter/updateGui.m +++ b/lib/+artoa/+controller/+track/+parameter/updateGui.m @@ -35,5 +35,13 @@ for i = 1:length(fieldNames) end end +if ~isnan(artoa.data.getMember(artoaWorkspace, {'trajectoryOutput', 'tableGeneratedTracksSelectedRow'}, NaN)) + artoa.controller.track.parameter.adjustTableColorsToTrajectory( ... + artoaWorkspace.trajectoryOutput.trajectories{artoaWorkspace.trajectoryOutput.tableGeneratedTracksSelectedRow} ... + ); +else + artoa.controller.track.parameter.adjustTableColorsToTrajectory(); +end + end diff --git a/lib/+artoa/+controller/+track/+trajectoryOutput/open.m b/lib/+artoa/+controller/+track/+trajectoryOutput/open.m index 965e3c0..633a7e2 100644 --- a/lib/+artoa/+controller/+track/+trajectoryOutput/open.m +++ b/lib/+artoa/+controller/+track/+trajectoryOutput/open.m @@ -65,58 +65,8 @@ artoaGui.trajectoryOutput.syncZoomToaWindow.xlistener = addlistener( ... @artoa.controller.track.trajectoryOutput.syncZoomToaWindow ... ); -%% Update table of generated tracks -artoa.controller.track.trajectoryOutput.updateTableGeneratedTracks(); - %% Update gui -if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'updateTrackParameterWindow'}) - artoaGui.trajectoryOutput.checkboxUpdateTrackParameterWindow.Value = ... - artoaWorkspace.trajectoryOutput.updateTrackParameterWindow; -else - artoaGui.trajectoryOutput.checkboxUpdateTrackParameterWindow.Value = false; -end -if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'showPositionDates'}) - artoaGui.trajectoryOutput.checkboxShowPositionDates.Value = ... - artoaWorkspace.trajectoryOutput.showPositionDates; -else - artoaGui.trajectoryOutput.checkboxShowPositionDates.Value = true; -end -if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'enableMercatorProjection'}) - artoaGui.trajectoryOutput.checkboxMercator.Value = ... - artoaWorkspace.trajectoryOutput.enableMercatorProjection; -else - artoaGui.trajectoryOutput.checkboxMercator.Value = false; -end -if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'enableTrueDistance'}) - artoaGui.trajectoryOutput.checkboxTrueDistance.Value = ... - artoaWorkspace.trajectoryOutput.enableTrueDistance; -else - artoaGui.trajectoryOutput.checkboxTrueDistance.Value = false; -end -if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'syncZoomToaWindow'}) - artoaGui.trajectoryOutput.checkboxSynchronizeZoomToaWindow.Value = ... - artoaWorkspace.trajectoryOutput.syncZoomToaWindow; -else - artoaGui.trajectoryOutput.checkboxSynchronizeZoomToaWindow.Value = false; -end -if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'showTopographicalLines'}) - artoaGui.trajectoryOutput.checkboxShowTopographicalLines.Value = ... - artoaWorkspace.trajectoryOutput.showTopographicalLines; -else - artoaGui.trajectoryOutput.checkboxShowTopographicalLines.Value = false; -end -if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'topographicalLines'}) - artoaGui.trajectoryOutput.tableTopographicalLines.Data = ... - artoaWorkspace.trajectoryOutput.topographicalLines; -else - artoaGui.trajectoryOutput.checkboxShowTopographicalLines.Value = false; -end -if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'showErrorEllipses'}) - artoaGui.trajectoryOutput.checkboxShowErrorEllipses.Value = ... - artoaWorkspace.trajectoryOutput.showErrorEllipses; -else - artoaGui.trajectoryOutput.checkboxShowErrorEllipses.Value = false; -end +artoa.controller.track.trajectoryOutput.updateGui(); %% Plot everything available artoa.controller.track.trajectoryOutput.plot(artoaWorkspace.trajectoryOutput.enableMercatorProjection); diff --git a/lib/+artoa/+controller/+track/+trajectoryOutput/updateGui.m b/lib/+artoa/+controller/+track/+trajectoryOutput/updateGui.m new file mode 100644 index 0000000..402917c --- /dev/null +++ b/lib/+artoa/+controller/+track/+trajectoryOutput/updateGui.m @@ -0,0 +1,60 @@ +function [] = updateGui() +%UPDATEGUI Summary of this function goes here +% Detailed explanation goes here + +global artoaWorkspace artoaGui; + +if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'updateTrackParameterWindow'}) + artoaGui.trajectoryOutput.checkboxUpdateTrackParameterWindow.Value = ... + artoaWorkspace.trajectoryOutput.updateTrackParameterWindow; +else + artoaGui.trajectoryOutput.checkboxUpdateTrackParameterWindow.Value = false; +end +if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'showPositionDates'}) + artoaGui.trajectoryOutput.checkboxShowPositionDates.Value = ... + artoaWorkspace.trajectoryOutput.showPositionDates; +else + artoaGui.trajectoryOutput.checkboxShowPositionDates.Value = true; +end +if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'enableMercatorProjection'}) + artoaGui.trajectoryOutput.checkboxMercator.Value = ... + artoaWorkspace.trajectoryOutput.enableMercatorProjection; +else + artoaGui.trajectoryOutput.checkboxMercator.Value = false; +end +if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'enableTrueDistance'}) + artoaGui.trajectoryOutput.checkboxTrueDistance.Value = ... + artoaWorkspace.trajectoryOutput.enableTrueDistance; +else + artoaGui.trajectoryOutput.checkboxTrueDistance.Value = false; +end +if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'syncZoomToaWindow'}) + artoaGui.trajectoryOutput.checkboxSynchronizeZoomToaWindow.Value = ... + artoaWorkspace.trajectoryOutput.syncZoomToaWindow; +else + artoaGui.trajectoryOutput.checkboxSynchronizeZoomToaWindow.Value = false; +end +if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'showTopographicalLines'}) + artoaGui.trajectoryOutput.checkboxShowTopographicalLines.Value = ... + artoaWorkspace.trajectoryOutput.showTopographicalLines; +else + artoaGui.trajectoryOutput.checkboxShowTopographicalLines.Value = false; +end +if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'topographicalLines'}) + artoaGui.trajectoryOutput.tableTopographicalLines.Data = ... + artoaWorkspace.trajectoryOutput.topographicalLines; +else + artoaGui.trajectoryOutput.checkboxShowTopographicalLines.Value = false; +end +if artoa.data.hasMember(artoaWorkspace, {'trajectoryOutput', 'showErrorEllipses'}) + artoaGui.trajectoryOutput.checkboxShowErrorEllipses.Value = ... + artoaWorkspace.trajectoryOutput.showErrorEllipses; +else + artoaGui.trajectoryOutput.checkboxShowErrorEllipses.Value = false; +end + +%% Update table of generated tracks +artoa.controller.track.trajectoryOutput.updateTableGeneratedTracks(); + +end + -- GitLab