Skip to content
Snippets Groups Projects
Commit 85583ec9 authored by Piotr Gawron's avatar Piotr Gawron
Browse files

Merge branch 'export-with-overlay' into 'master'

addOverlayFromString + getModelAsModelFile respects overlayIds

See merge request piotr.gawron/minerva!223
parents a5eb958e ccc8baa0
No related branches found
No related tags found
1 merge request!223addOverlayFromString + getModelAsModelFile respects overlayIds
Pipeline #
......@@ -1693,6 +1693,32 @@ ServerConnector.addOverlay = function (params) {
});
};
ServerConnector.addOverlayFromString = function(name, content) {
var fileName = name + ".txt";
var overlay = new DataOverlay({
name: name,
description: "",
filename: fileName
});
var fileContent = new TextEncoder("UTF8").encode(content);
self = this;
return self.getProjectId().then(function (projectid) {
return ServerConnector.uploadFile({
filename: fileName,
content: fileContent
}).then(function (file) {
return ServerConnector.addOverlay({
fileId: file.id,
overlay: overlay,
projectId: self.getProjectId()
});
}).then(function (result) {
return result;
});
});
}
ServerConnector.updateOverlay = function (overlay) {
var self = this;
var queryParams = {
......
package lcsb.mapviewer.api.projects;
import java.awt.Color;
import java.awt.geom.Path2D;
import java.awt.geom.PathIterator;
import java.io.ByteArrayInputStream;
......@@ -330,13 +331,14 @@ public class ProjectRestImpl extends BaseRestImpl {
String backgroundOverlayId, String overlayIds, String zoomLevel, String polygonString)
throws SecurityException, QueryException, IOException, InvalidColorSchemaException, CommandExecutionException,
ConverterException, InconsistentModelException {
User user = getUserService().getUserByToken(token);
Model topModel = getModelService().getLastModelByProjectId(projectId, token);
if (topModel == null) {
throw new ObjectNotFoundException("Project with given id doesn't exist");
}
Model originalModel = topModel.getSubmodelById(modelId);
if (originalModel == null) {
throw new ObjectNotFoundException("Model with given id doesn't exist");
}
......@@ -347,6 +349,32 @@ public class ProjectRestImpl extends BaseRestImpl {
// create model bounded by the polygon
SubModelCommand subModelCommand = new SubModelCommand(originalModel, polygon);
Model part = subModelCommand.execute();
//Get list of overlay ids
String[] overlayIdsList;
if (overlayIds == null || overlayIds.trim().isEmpty()) {
overlayIdsList = new String[0];
}
else {
overlayIdsList = overlayIds.split(",");
}
// Remove all colors
if (overlayIdsList.length > 0)
{
for (Element element: part.getElements()){
element.setColor(Color.WHITE);
}
}
// Color with overlays
for (String overlayId: overlayIdsList){
Layout overlay = layoutService.getLayoutById(Integer.parseInt(overlayId.trim()), token);
ColorSchemaReader reader = new ColorSchemaReader();
Collection<ColorSchema> schemas = reader.readColorSchema(overlay.getInputData().getFileContent());
new ColorModelCommand(part, schemas, getUserService().getColorExtractorForUser(user)).execute();
}
IConverter parser = getModelParser(handlerClass);
InputStream is = parser.exportModelToInputStream(part);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment