Skip to content

Commit 018bb57

Browse files
committed
#686 TimeUI Fit part 1
1 parent 820267c commit 018bb57

File tree

4 files changed

+89
-8
lines changed

4 files changed

+89
-8
lines changed

src/essence/Ancillary/TimeUI.css

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -269,3 +269,16 @@
269269
#mmgisTimeUIEndWrapperFake {
270270
right: 0;
271271
}
272+
273+
#mmgisTimeUIFitTime,
274+
#mmgisTimeUIFitWindow,
275+
#mmgisTimeUIPresent {
276+
color: var(--color-a5);
277+
transition: color 0.2s ease-out;
278+
}
279+
280+
#mmgisTimeUIFitTime:hover,
281+
#mmgisTimeUIFitWindow:hover,
282+
#mmgisTimeUIPresent:hover {
283+
color: var(--color-a7);
284+
}

src/essence/Ancillary/TimeUI.js

Lines changed: 67 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,12 @@ const TimeUI = {
110110
`</div>`,
111111
`</div>`,
112112
`<div id="mmgisTimeUIActionsRight">`,
113+
`<div id="mmgisTimeUIFitTime" class="mmgisTimeUIButton">`,
114+
`<i class='mdi mdi-view-carousel-outline mdi-24px'></i>`,
115+
`</div>`,
116+
`<div id="mmgisTimeUIFitWindow" class="mmgisTimeUIButton">`,
117+
`<i class='mdi mdi-view-array-outline mdi-24px'></i>`,
118+
`</div>`,
113119
`<div id="mmgisTimeUIPresent" class="mmgisTimeUIButton">`,
114120
`<i class='mdi mdi-clock-end mdi-24px'></i>`,
115121
`</div>`,
@@ -203,17 +209,14 @@ const TimeUI = {
203209
}
204210
TimeUI._timelineDragging = true
205211
$('#mmgisTimeUITimelineSlider').css({ pointerEvents: 'none' })
206-
$('#mmgisTimeUITimelineInner').on('mousemove', TimeUI._timelineDrag)
212+
$('body').on('mousemove', TimeUI._timelineDrag)
207213
})
208214
$('body').on('mouseup', function () {
209215
if (TimeUI._timelineDragging === true) {
210216
$('#mmgisTimeUITimelineSlider').css({
211217
pointerEvents: 'inherit',
212218
})
213-
$('#mmgisTimeUITimelineInner').off(
214-
'mousemove',
215-
TimeUI._timelineDrag
216-
)
219+
$('#mmgisTimeUITimelineInner').off('body', TimeUI._timelineDrag)
217220
TimeUI._timelineDragging = false
218221
}
219222
})
@@ -347,6 +350,16 @@ const TimeUI = {
347350
placement: 'top',
348351
theme: 'blue',
349352
})
353+
tippy('#mmgisTimeUIFitTime', {
354+
content: 'Fit Time to Window',
355+
placement: 'top',
356+
theme: 'blue',
357+
})
358+
tippy('#mmgisTimeUIFitWindow', {
359+
content: 'Fit Window to Time',
360+
placement: 'top',
361+
theme: 'blue',
362+
})
350363
tippy('#mmgisTimeUIPresent', {
351364
content: 'Present',
352365
placement: 'top',
@@ -565,6 +578,8 @@ const TimeUI = {
565578
TimeUI.startTempus.dates.setValue(parsedStart)
566579

567580
$('#mmgisTimeUIPlay').on('click', TimeUI.togglePlay)
581+
$('#mmgisTimeUIFitTime').on('click', TimeUI.fitTimeToWindow)
582+
$('#mmgisTimeUIFitWindow').on('click', TimeUI.fitWindowToTime)
568583
$('#mmgisTimeUIPresent').on('click', TimeUI.toggleTimeNow)
569584

570585
TimeUI._remakeTimeSlider()
@@ -687,6 +702,53 @@ const TimeUI = {
687702

688703
TimeUI._remakeTimeSlider(true)
689704
},
705+
fitTimeToWindow() {
706+
let nextStart
707+
let nextEnd
708+
709+
nextStart =
710+
TimeUI._timelineEndTimestamp != null
711+
? TimeUI._timelineStartTimestamp
712+
: 0
713+
nextEnd =
714+
TimeUI._timelineStartTimestamp != null
715+
? TimeUI._timelineEndTimestamp
716+
: 100
717+
718+
TimeUI.updateTimes(nextStart, nextEnd, nextEnd)
719+
},
720+
fitWindowToTime() {
721+
const rangeMode =
722+
TimeUI.modes[TimeUI.modeIndex] === 'Range' ? true : false
723+
724+
let nextStart
725+
let nextEnd
726+
if (rangeMode) {
727+
// Match window edges exactly with time range
728+
nextStart = TimeUI.removeOffset(TimeUI._startTimestamp)
729+
nextEnd = TimeUI.removeOffset(TimeUI.getCurrentTimestamp())
730+
} else {
731+
// Adjust window such that Point is in its center
732+
const existingMin =
733+
TimeUI._timelineEndTimestamp != null
734+
? TimeUI._timelineStartTimestamp
735+
: 0
736+
const existingMax =
737+
TimeUI._timelineStartTimestamp != null
738+
? TimeUI._timelineEndTimestamp
739+
: 100
740+
const buffer = (existingMax - existingMin) / 2
741+
nextStart = TimeUI.removeOffset(
742+
TimeUI.getCurrentTimestamp() - buffer
743+
)
744+
nextEnd = TimeUI.removeOffset(TimeUI.getCurrentTimestamp() + buffer)
745+
}
746+
TimeUI._drawTimeLine(nextStart, nextEnd)
747+
748+
clearTimeout(TimeUI._panHistoTimeout)
749+
$('#mmgisTimeUITimelineHisto').empty()
750+
TimeUI._makeHistogram()
751+
},
690752
toggleTimeNow(force) {
691753
if ((!TimeUI.now && typeof force != 'boolean') || force === true) {
692754
$('#mmgisTimeUIPresent')

src/essence/Basics/Layers_/Layers_.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3585,7 +3585,7 @@ async function parseConfig(configData, urlOnLayers) {
35853585
if (
35863586
L_.configData.projection &&
35873587
L_.configData.projection.resunitsperpixel &&
3588-
L_.configData.projection.reszoomlevel
3588+
L_.configData.projection.reszoomlevel != null
35893589
) {
35903590
var baseRes =
35913591
L_.configData.projection.resunitsperpixel *

src/essence/Tools/Draw/DrawTool_Templater.js

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -239,15 +239,21 @@ const DrawTool_Templater = {
239239

240240
$(`#drawToolTemplater_setTimeStart`).on('click', () => {
241241
L_.TimeControl_.setTime(
242-
properties[startTime],
242+
L_.TimeControl_.timeUI.removeOffset(
243+
new Date(properties[startTime]).getTime()
244+
),
243245
L_.TimeControl_.getEndTime()
244246
)
247+
L_.TimeControl_.timeUI.fitWindowToTime()
245248
})
246249
$(`#drawToolTemplater_setTimeEnd`).on('click', () => {
247250
L_.TimeControl_.setTime(
248251
L_.TimeControl_.getStartTime(),
249-
properties[endTime]
252+
L_.TimeControl_.timeUI.removeOffset(
253+
new Date(properties[endTime]).getTime()
254+
)
250255
)
256+
L_.TimeControl_.timeUI.fitWindowToTime()
251257
})
252258

253259
return {

0 commit comments

Comments
 (0)