diff --git a/VERSION b/VERSION index 9754915269eca9a8e68210cbe363f9fa9be817e1..ddc17b20b78d2bacaba1fee53301ffb2a7955fec 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 7ece7da73ece5557dfbf254a3f42d95a877d9841..af87383aab7deee77b2a689767d611d0658119ff 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 9da8ceccd17e15bec9868215511c51ed1f5fdd91..f2b2cd1dd24fac6efa8d5b1ca81fcc0125ec4c97 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 0000000000000000000000000000000000000000..fcaf3f58f2dcc97763383e7a12d681259ab39a36 --- /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 93b895925a832cf54f316d622cff6bf3c77b071d..1267e6ad7d109b29fa6adf886bcbd3d3c0fa387a 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 3bb108d6f001b21a1786965f967017e2c282d2dc..b6370d6b4ffc1b24909544f59b29cf89db8a3a27 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 caba4218c7f00ab0c414841cbf3e6d5d84bbb508..8a6b0248f6469c63c02930d36c7c2e56dcdc7bbf 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 71737b2f7f578b7945c35c960b9e8685bd1523cb..8efb53a4715201bb6513ad5cbcd9c6382996f649 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 965e3c0866921b77150686c32dfbf9c6f1b9c768..633a7e2f2e72957c2427c700bcda9d7beaf2b132 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 0000000000000000000000000000000000000000..402917c5332b28fb4f4e30bbb07a58dad6a6950a --- /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 +