Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
minerva
core
Commits
e45713db
Commit
e45713db
authored
Jan 06, 2017
by
Piotr Gawron
Browse files
current center point of map is stored in js session
parent
2e2ed619
Changes
10
Hide whitespace changes
Inline
Side-by-side
frontend-js/src/main/js/ServerConnector.js
View file @
e45713db
...
...
@@ -49,36 +49,6 @@ ServerConnector.lastActualization = 0;
ServerConnector
.
_customMap
=
null
;
/**
* Set x coordinate for {@link CustomMap} on the server side.
*/
ServerConnector
.
setCenterCoordinateX
=
function
(
value
)
{
document
.
getElementById
(
ServerConnector
.
formIdentifier
+
'
:centerCoordinateX
'
).
value
=
""
+
value
;
};
/**
* Get x coordinate of the {@link CustomMap} at which it was last browsed.
*/
ServerConnector
.
getCenterCoordinateX
=
function
()
{
var
result
=
parseFloat
(
document
.
getElementById
(
ServerConnector
.
formIdentifier
+
'
:centerCoordinateX
'
).
value
);
return
result
;
};
/**
* Set y coordinate for {@link CustomMap} on the server side.
*/
ServerConnector
.
setCenterCoordinateY
=
function
(
value
)
{
document
.
getElementById
(
ServerConnector
.
formIdentifier
+
'
:centerCoordinateY
'
).
value
=
""
+
value
;
};
/**
* Get y coordinate of the {@link CustomMap} at which it was last browsed.
*/
ServerConnector
.
getCenterCoordinateY
=
function
()
{
var
result
=
parseFloat
(
document
.
getElementById
(
ServerConnector
.
formIdentifier
+
'
:centerCoordinateY
'
).
value
);
return
result
;
};
/**
* Set layout that is currently browsed for {@link CustomMap} on the server
* side.
...
...
frontend-js/src/main/js/SessionData.js
View file @
e45713db
...
...
@@ -21,14 +21,11 @@ SessionData.prototype.getProjectId = function(project) {
SessionData
.
prototype
.
getShowComments
=
function
()
{
var
key
=
this
.
getKey
(
SessionObjectType
.
SHOW_COMMENT
);
console
.
log
(
"
GET:
"
,
key
,
Cookies
.
get
(
key
));
return
Cookies
.
get
(
key
)
===
"
true
"
;
};
SessionData
.
prototype
.
setShowComments
=
function
(
value
)
{
var
key
=
this
.
getKey
(
SessionObjectType
.
SHOW_COMMENT
);
console
.
log
(
key
,
value
);
Cookies
.
set
(
key
,
value
+
""
);
};
...
...
@@ -46,6 +43,21 @@ SessionData.prototype.getZoomLevel = function(model) {
return
value
;
};
SessionData
.
prototype
.
setCenter
=
function
(
model
,
value
)
{
var
key
=
this
.
getKey
(
SessionObjectType
.
CENTER
,
[
model
.
getId
()
]);
Cookies
.
set
(
key
,
value
.
x
+
"
,
"
+
value
.
y
);
};
SessionData
.
prototype
.
getCenter
=
function
(
model
)
{
var
key
=
this
.
getKey
(
SessionObjectType
.
CENTER
,
[
model
.
getId
()
]);
var
value
=
Cookies
.
get
(
key
);
if
(
value
!==
undefined
)
{
var
tmp
=
value
.
split
(
"
,
"
);
value
=
new
google
.
maps
.
Point
(
tmp
[
0
],
tmp
[
1
]);
}
return
value
;
};
SessionData
.
prototype
.
getKey
=
function
(
type
,
args
)
{
if
(
type
===
undefined
)
{
throw
new
Error
(
"
Undefined type
"
);
...
...
frontend-js/src/main/js/SessionObjectType.js
View file @
e45713db
"
use strict
"
;
var
SessionObjectType
=
{
CENTER
:
"
CENTER
"
,
SHOW_COMMENT
:
"
SHOW_COMMENT
"
,
ZOOM_LEVEL
:
"
ZOOM_LEVEL
"
,
};
...
...
frontend-js/src/main/js/map/CustomMap.js
View file @
e45713db
...
...
@@ -692,10 +692,10 @@ CustomMap.prototype.setZoom = function(mapIdentifier, zoom) {
*/
CustomMap
.
prototype
.
createMapChangedCallbacks
=
function
()
{
var
customMapSelf
=
this
;
var
sessionData
=
ServerConnector
.
getSessionData
(
customMapSelf
.
getProject
());
// listener for changing zoom level
google
.
maps
.
event
.
addListener
(
this
.
getGoogleMap
(),
'
zoom_changed
'
,
function
()
{
ServerConnector
.
getSessionData
(
customMapSelf
.
getProject
()).
setZoomLevel
(
customMapSelf
.
getModel
(),
customMapSelf
.
getGoogleMap
().
getZoom
());
ServerConnector
.
actualizeSessionData
();
sessionData
.
setZoomLevel
(
customMapSelf
.
getModel
(),
customMapSelf
.
getGoogleMap
().
getZoom
());
});
// if we have zoom level data stored in session then restore it
...
...
@@ -704,23 +704,19 @@ CustomMap.prototype.createMapChangedCallbacks = function() {
level
=
parseInt
(
level
);
this
.
getGoogleMap
().
setZoom
(
level
);
}
else
{
ServerConnector
.
getSessionData
(
customMapSelf
.
getProject
())
.
setZoomLevel
(
customMapSelf
.
getModel
(),
customMapSelf
.
getGoogleMap
().
getZoom
());
sessionData
.
setZoomLevel
(
customMapSelf
.
getModel
(),
customMapSelf
.
getGoogleMap
().
getZoom
());
}
// listener for changing location of the map (moving left/reght/top/bottom
google
.
maps
.
event
.
addListener
(
this
.
getGoogleMap
(),
'
center_changed
'
,
function
()
{
var
coord
=
customMapSelf
.
getGoogleMap
().
getCenter
();
var
point
=
customMapSelf
.
fromLatLngToPoint
(
coord
);
ServerConnector
.
setCenterCoordinateX
(
point
.
x
);
ServerConnector
.
setCenterCoordinateY
(
point
.
y
);
ServerConnector
.
actualizeSessionData
();
sessionData
.
setCenter
(
customMapSelf
.
getModel
(),
point
);
});
// if we have coordinate data stored in session then restore it
var
x
=
ServerConnector
.
getCenterCoordinateX
();
var
y
=
ServerConnector
.
getCenterCoordinateY
();
if
(
!
isNaN
(
x
)
&&
!
isNaN
(
y
))
{
var
point
=
new
google
.
maps
.
Point
(
x
,
y
);
var
point
=
sessionData
.
getCenter
(
customMapSelf
.
getModel
());
if
(
point
!==
undefined
)
{
var
coord
=
customMapSelf
.
fromPointToLatLng
(
point
);
customMapSelf
.
getGoogleMap
().
setCenter
(
coord
);
}
...
...
frontend-js/src/main/js/minerva.js
View file @
e45713db
...
...
@@ -12,19 +12,20 @@ var OriginalServerConnector = require('./ServerConnector');
var
logger
=
require
(
'
./logger
'
);
function
processUrlGetParams
(
params
)
{
var
project
=
params
.
project
;
if
(
project
===
undefined
)
{
project
=
params
.
getProject
();
}
var
sessionData
=
ServerConnector
.
getSessionData
(
project
);
if
(
GuiConnector
.
getParams
[
"
submap
"
]
===
undefined
||
project
.
getModel
().
getId
()
===
parseInt
(
GuiConnector
.
getParams
[
"
submap
"
]))
{
if
(
GuiConnector
.
getParams
[
"
x
"
]
!==
undefined
&&
GuiConnector
.
getParams
[
"
y
"
]
!==
undefined
)
{
Server
Connector
.
s
et
CenterCoordinateX
(
GuiConnector
.
getParams
[
"
x
"
]);
ServerConnector
.
setCenterCoordinateY
(
GuiConn
ect
or
.
get
Params
[
"
y
"
]
);
var
point
=
new
google
.
maps
.
Point
(
Gui
Connector
.
g
et
Params
[
"
x
"
],
GuiConnector
.
getParams
[
"
y
"
]);
sessionData
.
setCenter
(
proj
ect
.
get
Model
(),
point
);
}
if
(
GuiConnector
.
getParams
[
"
zoom
"
]
!==
undefined
)
{
ServerConnector
.
getS
essionData
(
project
)
.
setZoomLevel
(
project
.
getModel
(),
GuiConnector
.
getParams
[
"
zoom
"
]);
s
essionData
.
setZoomLevel
(
project
.
getModel
(),
GuiConnector
.
getParams
[
"
zoom
"
]);
}
}
}
...
...
frontend-js/src/test/js/ServerConnector-mock.js
View file @
e45713db
...
...
@@ -83,22 +83,6 @@ ServerConnectorMock.callListeners = function(type, param) {
}
};
ServerConnectorMock
.
setCenterCoordinateX
=
function
(
value
)
{
this
.
centerCoordinateX
=
value
;
};
ServerConnectorMock
.
getCenterCoordinateX
=
function
()
{
return
this
.
centerCoordinateX
;
};
ServerConnectorMock
.
setCenterCoordinateY
=
function
(
value
)
{
this
.
centerCoordinateY
=
value
;
};
ServerConnectorMock
.
getCenterCoordinateY
=
function
()
{
return
this
.
centerCoordinateY
;
};
ServerConnectorMock
.
setSelectedLayout
=
function
(
value
)
{
this
.
selectedLayout
=
value
;
};
...
...
frontend-js/src/test/js/helper.js
View file @
e45713db
...
...
@@ -84,6 +84,7 @@ Helper.prototype.createDbOverlay = function(map) {
Helper
.
prototype
.
createProject
=
function
()
{
var
result
=
new
Project
();
result
.
setProjectId
(
"
testId
"
);
result
.
setId
(
this
.
idCounter
++
);
result
.
setModel
(
this
.
createModel
());
return
result
;
...
...
frontend-js/src/test/js/map/CustomMap-test.js
View file @
e45713db
...
...
@@ -542,6 +542,18 @@ describe('CustomMap', function() {
assert
.
ok
(
ServerConnector
.
getSessionData
(
map
.
getProject
()).
getShowComments
());
});
it
(
"
changed coords in map
"
,
function
()
{
var
map
=
helper
.
createCustomMap
();
var
oldCenter
=
map
.
getGoogleMap
().
getCenter
();
var
newCenter
=
new
google
.
maps
.
LatLng
(
3
,
87
);
map
.
getGoogleMap
().
setCenter
(
newCenter
);
google
.
maps
.
event
.
trigger
(
map
.
getGoogleMap
(),
"
center_changed
"
);
var
center
=
ServerConnector
.
getSessionData
(
map
.
getProject
()).
getCenter
(
map
.
getModel
());
assert
.
ok
(
center
!==
oldCenter
);
assert
.
ok
(
center
instanceof
google
.
maps
.
Point
);
});
it
(
"
refreshComments
"
,
function
()
{
var
map
=
helper
.
createCustomMap
();
map
.
getModel
().
setId
(
15781
);
...
...
frontend-js/src/test/js/minerva-test.js
View file @
e45713db
...
...
@@ -34,6 +34,18 @@ describe('minerva global', function() {
});
});
it
(
"
contructor with GET coord param
"
,
function
()
{
var
options
=
helper
.
createCustomMapOptions
();
GuiConnector
.
getParams
[
"
x
"
]
=
"
5
"
;
GuiConnector
.
getParams
[
"
y
"
]
=
"
6
"
;
return
minerva
.
create
(
options
).
then
(
function
(
result
)
{
var
center
=
ServerConnector
.
getSessionData
(
options
.
getProject
()).
getCenter
(
options
.
getProject
().
getModel
());
assert
.
ok
(
center
instanceof
google
.
maps
.
Point
);
assert
.
equal
(
center
.
x
,
5
);
assert
.
equal
(
center
.
y
,
6
);
});
});
it
(
'
create with layout
'
,
function
()
{
...
...
web/src/main/webapp/WEB-INF/components/map/map.xhtml
View file @
e45713db
...
...
@@ -38,9 +38,6 @@
<h:inputHidden
id=
"selectedDrugPolygon"
value=
"#{drugMB.polygon}"
/>
<p:remoteCommand
name=
"_actualizeParams"
actionListener=
"#{mapMB.actualizeParams}"
/>
<h:inputHidden
id=
"centerCoordinateX"
value=
"#{mapMB.topModelMapData.centerCoordinateX}"
/>
<h:inputHidden
id=
"centerCoordinateY"
value=
"#{mapMB.topModelMapData.centerCoordinateY}"
/>
<h:inputHidden
id=
"zoomLevel"
value=
"#{mapMB.topModelMapData.zoomLevel}"
/>
<h:inputHidden
id=
"selectedLayout"
value=
"#{mapMB.topModelMapData.selectedLayout}"
/>
<h:panelGroup
layout=
"block"
id=
"submodelDialogGroup"
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment