From 3ab57631f2a608c316d7c22765552bee5ae4a418 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Tue, 25 Jul 2017 18:02:19 +0200 Subject: [PATCH] simple upload uses different color then min/max value of the overlay --- .../graphics/AbstractImageGenerator.java | 28 +++++++++++++++++-- .../converter/graphics/ConverterTest.java | 2 +- .../bioEntity/BioEntityConverterImplTest.java | 2 +- .../element/species/SpeciesConverterTest.java | 2 +- .../reaction/ReactionConverterTest.java | 2 +- frontend-js/src/main/js/ConfigurationType.js | 1 + frontend-js/src/main/js/Functions.js | 20 +++++++------ frontend-js/src/main/js/ServerConnector.js | 18 ++++++++++++ frontend-js/src/main/js/map/data/User.js | 9 ++++++ frontend-js/src/test/js/Functions-test.js | 4 +-- .../commands/ClearColorModelCommand.java | 2 +- .../mapviewer/commands/ColorExtractor.java | 13 +++++++-- .../commands/ColorModelCommandTest.java | 2 +- .../model/user/ConfigurationElementType.java | 7 ++++- .../java/lcsb/mapviewer/model/user/User.java | 24 ++++++++++++++++ persist/src/db/11/fix_db_20170725.sql | 2 ++ .../api/projects/ProjectRestImpl.java | 3 +- .../mapviewer/api/users/UserRestImpl.java | 3 ++ .../services/impl/LayoutService.java | 12 ++++---- .../mapviewer/services/impl/UserService.java | 7 ++++- .../services/utils/ColorSchemaReader.java | 2 +- .../services/impl/LayoutServiceTest2.java | 2 +- .../services/utils/ColorSchemaReaderTest.java | 2 +- 23 files changed, 135 insertions(+), 34 deletions(-) create mode 100644 persist/src/db/11/fix_db_20170725.sql diff --git a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/AbstractImageGenerator.java b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/AbstractImageGenerator.java index 036d3b221f..bcd7da6eec 100644 --- a/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/AbstractImageGenerator.java +++ b/converter-graphics/src/main/java/lcsb/mapviewer/converter/graphics/AbstractImageGenerator.java @@ -17,6 +17,7 @@ import org.apache.log4j.Logger; import lcsb.mapviewer.commands.ColorExtractor; import lcsb.mapviewer.commands.SemanticZoomLevelMatcher; import lcsb.mapviewer.common.MimeType; +import lcsb.mapviewer.converter.graphics.AbstractImageGenerator.Params; import lcsb.mapviewer.converter.graphics.bioEntity.BioEntityConverterImpl; import lcsb.mapviewer.converter.graphics.layer.LayerConverter; import lcsb.mapviewer.model.map.compartment.Compartment; @@ -68,7 +69,7 @@ import lcsb.mapviewer.modelutils.map.ElementUtils; * */ public abstract class AbstractImageGenerator { - + /** * Class that allows to check if element is visible (or transparent) when * drawing. It's used to filter out invisible elements when drawing @@ -205,6 +206,8 @@ public abstract class AbstractImageGenerator { */ private Color maxColor = Color.BLACK; + private Color simpleColor = Color.BLACK; + /** * @param scale * scale to set @@ -533,6 +536,10 @@ public abstract class AbstractImageGenerator { return maxColor; } + public Color getSimpleColor() { + return simpleColor; + } + /** * Returns {@link Color} that should be used for drawing overlays with * minimum value. @@ -566,6 +573,17 @@ public abstract class AbstractImageGenerator { return this; } + /** + * @param simpleColor + * simpleColor to set + * @return object with all parameters + * @see #simpleColor + */ + public Params simpleColor(Color simpleColor) { + this.simpleColor = simpleColor; + return this; + } + /** * @return the sbgn * @see #sbgn @@ -585,6 +603,12 @@ public abstract class AbstractImageGenerator { return this; } + public Params colorExtractor(ColorExtractor colorExtractor) { + return minColor(colorExtractor.getMinColor()).// + maxColor(colorExtractor.getMaxColor()).// + simpleColor(colorExtractor.getSimpleColor()); + } + } /** @@ -653,7 +677,7 @@ public abstract class AbstractImageGenerator { this.level = params.getLevel(); this.scale = params.getScale(); - colorExtractor = new ColorExtractor(params.getMinColor(), params.getMaxColor()); + colorExtractor = new ColorExtractor(params.getMinColor(), params.getMaxColor(), params.getSimpleColor()); // set border frame extended by a margin border = new Rectangle2D.Double( diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/ConverterTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/ConverterTest.java index 59f4964c75..13aac7e427 100644 --- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/ConverterTest.java +++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/ConverterTest.java @@ -26,7 +26,7 @@ public class ConverterTest { @Test public void test() { try { - ColorExtractor colorExtractor = new ColorExtractor(Color.BLUE, Color.RED); + ColorExtractor colorExtractor = new ColorExtractor(Color.BLUE, Color.RED, Color.BLUE); new BioEntityConverterImpl(new BottomSquareCompartment("id1"), colorExtractor); new BioEntityConverterImpl(new TopSquareCompartment("id2"), colorExtractor); new BioEntityConverterImpl(new LeftSquareCompartment("id3"), colorExtractor); diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverterImplTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverterImplTest.java index 206b3f332f..68060ae783 100644 --- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverterImplTest.java +++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/BioEntityConverterImplTest.java @@ -27,7 +27,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein; public class BioEntityConverterImplTest { - ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN); + ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN, Color.BLUE); @AfterClass public static void tearDownAfterClass() throws Exception { diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverterTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverterTest.java index 1bdacdc9d7..3b8f0499b3 100644 --- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverterTest.java +++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/element/species/SpeciesConverterTest.java @@ -22,7 +22,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein; public class SpeciesConverterTest { - ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN); + ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN, Color.BLUE); @Before public void setUp() throws Exception { diff --git a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/reaction/ReactionConverterTest.java b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/reaction/ReactionConverterTest.java index f5f2408841..6c54f92d23 100644 --- a/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/reaction/ReactionConverterTest.java +++ b/converter-graphics/src/test/java/lcsb/mapviewer/converter/graphics/bioEntity/reaction/ReactionConverterTest.java @@ -40,7 +40,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein; public class ReactionConverterTest extends GraphicsTestFunctions { - ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN); + ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN, Color.BLUE); @Before public void setUp() throws Exception { diff --git a/frontend-js/src/main/js/ConfigurationType.js b/frontend-js/src/main/js/ConfigurationType.js index defc30720f..aa792f821a 100644 --- a/frontend-js/src/main/js/ConfigurationType.js +++ b/frontend-js/src/main/js/ConfigurationType.js @@ -8,6 +8,7 @@ var ConfigurationType = { LEGEND_FILES : "LEGEND_FILES", MIN_COLOR_VAL : "MIN_COLOR_VAL", MAX_COLOR_VAL : "MAX_COLOR_VAL", + SIMPLE_COLOR_VAL : "SIMPLE_COLOR_VAL", SEARCH_DISTANCE : "SEARCH_DISTANCE", USER_MANUAL_FILE : "USER_MANUAL_FILE", }; diff --git a/frontend-js/src/main/js/Functions.js b/frontend-js/src/main/js/Functions.js index 3d7acf87d5..de976d6f37 100644 --- a/frontend-js/src/main/js/Functions.js +++ b/frontend-js/src/main/js/Functions.js @@ -171,16 +171,22 @@ Functions.overlayToColor = function(elementOverlay) { return Promise.reject("elementOverlay cannot be null!"); } else if (elementOverlay.color !== undefined && elementOverlay.color !== null) { return Promise.resolve(self.intToColorString(elementOverlay.color.value)); - } else if (elementOverlay.value !== undefined && elementOverlay.value !== null) { + } else { var ratio = 0; var promiseColor = null; - if (elementOverlay.value < 0) { - ratio = -elementOverlay.value; - promiseColor = ServerConnector.getMinOverlayColorInt(); + if (elementOverlay.value !== undefined && elementOverlay.value !== null) { + if (elementOverlay.value < 0) { + ratio = -elementOverlay.value; + promiseColor = ServerConnector.getMinOverlayColorInt(); + } else { + ratio = elementOverlay.value; + promiseColor = ServerConnector.getMaxOverlayColorInt(); + } } else { - ratio = elementOverlay.value; - promiseColor = ServerConnector.getMaxOverlayColorInt(); + ratio = 1; + promiseColor = ServerConnector.getSimpleOverlayColorInt(); } + return promiseColor.then(function(color) { ratio = 1 - ratio; @@ -207,8 +213,6 @@ Functions.overlayToColor = function(elementOverlay) { color = red | green | blue; return self.intToColorString(color); }); - } else { - return Promise.reject(new Error("elementOverlay doesn't have neither color nor value set!")); } }; diff --git a/frontend-js/src/main/js/ServerConnector.js b/frontend-js/src/main/js/ServerConnector.js index 98798955d4..45af28dfb1 100644 --- a/frontend-js/src/main/js/ServerConnector.js +++ b/frontend-js/src/main/js/ServerConnector.js @@ -62,6 +62,24 @@ ServerConnector.getMinOverlayColorInt = function() { }); }; +ServerConnector.getSimpleOverlayColorInt = function() { + var self = this; + var userColor; + return self.getLoggedUser().then(function(user) { + userColor = user.getSimpleColor(); + return self.getConfigurationParam(ConfigurationType.SIMPLE_COLOR_VAL); + }).then(function(systemSimpleColor) { + var color = userColor; + if (userColor === null || userColor === undefined || userColor === "") { + color = systemSimpleColor; + } + color = parseInt(color, 16); + /* jslint bitwise: true */ + color = (color & 0xFFFFFF); + return color; + }); +}; + ServerConnector.getMaxOverlayColorInt = function() { var self = this; var userColor; diff --git a/frontend-js/src/main/js/map/data/User.js b/frontend-js/src/main/js/map/data/User.js index 48398247f9..cd41f7d7f9 100644 --- a/frontend-js/src/main/js/map/data/User.js +++ b/frontend-js/src/main/js/map/data/User.js @@ -13,6 +13,7 @@ function User(javaObject) { this.setPrivileges(javaObject.privileges); this.setMinColor(javaObject.minColor); this.setMaxColor(javaObject.maxColor); + this.setSimpleColor(javaObject.simpleColor); } User.prototype.setLogin = function(login) { @@ -63,6 +64,14 @@ User.prototype.getMinColor = function() { return this._minColor; }; +User.prototype.setSimpleColor = function(simpleColor) { + this._simpleColor = simpleColor; +}; + +User.prototype.getSimpleColor = function() { + return this._simpleColor; +}; + User.prototype.setMaxColor = function(maxColor) { this._maxColor = maxColor; }; diff --git a/frontend-js/src/test/js/Functions-test.js b/frontend-js/src/test/js/Functions-test.js index c1c9dc2c3d..7951eb34d4 100644 --- a/frontend-js/src/test/js/Functions-test.js +++ b/frontend-js/src/test/js/Functions-test.js @@ -200,9 +200,7 @@ describe('functions', function() { it('overlayToColor with invalid arg 2', function() { return functions.overlayToColor({}).then(function(colorString) { - throw new Error('Promise was unexpectedly fulfilled. Result: ' + colorString); - }, function rejected(error) { - assert.ok(error.message.indexOf("elementOverlay doesn't have neither color nor value set") >= 0); + assert.ok(colorString); }); }); diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/ClearColorModelCommand.java b/model-command/src/main/java/lcsb/mapviewer/commands/ClearColorModelCommand.java index 891434f015..64a211a664 100644 --- a/model-command/src/main/java/lcsb/mapviewer/commands/ClearColorModelCommand.java +++ b/model-command/src/main/java/lcsb/mapviewer/commands/ClearColorModelCommand.java @@ -26,7 +26,7 @@ public class ClearColorModelCommand extends ModelCommand { */ public ClearColorModelCommand(Model model) { super(model); - colorModelCommand = new ColorModelCommand(model, new ArrayList<>(), new ColorExtractor(Color.WHITE, Color.WHITE)); + colorModelCommand = new ColorModelCommand(model, new ArrayList<>(), new ColorExtractor(Color.WHITE, Color.WHITE, Color.WHITE)); } @Override diff --git a/model-command/src/main/java/lcsb/mapviewer/commands/ColorExtractor.java b/model-command/src/main/java/lcsb/mapviewer/commands/ColorExtractor.java index 1a6d5d5d31..0638978854 100644 --- a/model-command/src/main/java/lcsb/mapviewer/commands/ColorExtractor.java +++ b/model-command/src/main/java/lcsb/mapviewer/commands/ColorExtractor.java @@ -24,6 +24,8 @@ public class ColorExtractor { */ private Color maxColor; + private Color simpleColor; + /** * Default constructor. * @@ -34,12 +36,13 @@ public class ColorExtractor { * Color that should be used for max values of * {@link ColorSchema#value} */ - public ColorExtractor(Color minColor, Color maxColor) { - if (minColor == null || maxColor == null) { + public ColorExtractor(Color minColor, Color maxColor, Color simpleColor) { + if (minColor == null || maxColor == null || simpleColor == null) { throw new InvalidArgumentException("Parameters cannot be null"); } this.minColor = minColor; this.maxColor = maxColor; + this.simpleColor = simpleColor; } /** @@ -53,6 +56,8 @@ public class ColorExtractor { public Color getNormalizedColor(ColorSchema colorSchema) { if (colorSchema.getColor() != null) { return colorSchema.getColor(); + } else if (colorSchema.getValue() == null) { + return simpleColor; } else { return getColorForValue(colorSchema.getValue()); } @@ -93,4 +98,8 @@ public class ColorExtractor { public Color getMaxColor() { return maxColor; } + + public Color getSimpleColor() { + return simpleColor; + } } diff --git a/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java b/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java index 14d934650b..8bc1cd05cb 100644 --- a/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java +++ b/model-command/src/test/java/lcsb/mapviewer/commands/ColorModelCommandTest.java @@ -31,7 +31,7 @@ import lcsb.mapviewer.model.map.species.GenericProtein; public class ColorModelCommandTest extends CommandTestFunctions { Logger logger = Logger.getLogger(ColorModelCommandTest.class); - ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN); + ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN, Color.BLUE); @Before public void setUp() throws Exception { diff --git a/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java b/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java index 71e8845ee3..8ff0f95344 100644 --- a/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java +++ b/model/src/main/java/lcsb/mapviewer/model/user/ConfigurationElementType.java @@ -126,7 +126,12 @@ public enum ConfigurationElementType { /** * Color used for positive overlay values. */ - MAX_COLOR_VAL("Overlay color for postive values", "0000FF", ConfigurationElementEditType.COLOR, false); + MAX_COLOR_VAL("Overlay color for postive values", "0000FF", ConfigurationElementEditType.COLOR, false), + + /** + * Color used for undefined overlay values. + */ + SIMPLE_COLOR_VAL("Overlay color when no values are defined", "00FF00", ConfigurationElementEditType.COLOR, false); /** * Default value of the configuration parameter (it will be used only when diff --git a/model/src/main/java/lcsb/mapviewer/model/user/User.java b/model/src/main/java/lcsb/mapviewer/model/user/User.java index 3cc421f8f5..216c7837db 100644 --- a/model/src/main/java/lcsb/mapviewer/model/user/User.java +++ b/model/src/main/java/lcsb/mapviewer/model/user/User.java @@ -80,6 +80,13 @@ public class User implements Serializable { */ private Color maxColor; + /** + * User defined color overriding system + * {@link ConfigurationElementType#SIMPLE_COLOR_VAL}. Used for coloring + * overlays without values and colors. + */ + private Color simpleColor; + /** * Is the user removed. */ @@ -309,4 +316,21 @@ public class User implements Serializable { this.maxColor = maxColor; } + /** + * @return the simpleColor + * @see #simpleColor + */ + public Color getSimpleColor() { + return simpleColor; + } + + /** + * @param simpleColor + * the simpleColor to set + * @see #simpleColor + */ + public void setSimpleColor(Color simpleColor) { + this.simpleColor = simpleColor; + } + } diff --git a/persist/src/db/11/fix_db_20170725.sql b/persist/src/db/11/fix_db_20170725.sql new file mode 100644 index 0000000000..37a66ace4e --- /dev/null +++ b/persist/src/db/11/fix_db_20170725.sql @@ -0,0 +1,2 @@ +--simple color for coloring +alter table user_table add column simplecolor bytea; \ No newline at end of file diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java index cba3a43808..41af2e14c2 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/projects/ProjectRestImpl.java @@ -313,8 +313,7 @@ public class ProjectRestImpl extends BaseRestImpl { level(level - Configuration.MIN_ZOOM_LEVEL).// nested(false).// automatically set nested view as invalid scale(scale).// - minColor(colorExtractor.getMinColor()).// - maxColor(colorExtractor.getMaxColor()).// + colorExtractor(colorExtractor).// sbgn(topModel.getProject().isSbgnFormat()).// model(colorModel); if (overlay != null) { diff --git a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java index 1aef78c3c4..bcd07b094b 100644 --- a/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java +++ b/rest-api/src/main/java/lcsb/mapviewer/api/users/UserRestImpl.java @@ -76,6 +76,7 @@ public class UserRestImpl { columnsSet.add("email"); columnsSet.add("minColor"); columnsSet.add("maxColor"); + columnsSet.add("simpleColor"); columnsSet.add("removed"); columnsSet.add("privileges"); } else { @@ -105,6 +106,8 @@ public class UserRestImpl { value = user.getMinColor(); } else if (column.equals("maxcolor")) { value = user.getMaxColor(); + } else if (column.equals("simplecolor")) { + value = user.getSimpleColor(); } else if (column.equals("removed")) { value = user.isRemoved(); } else if (column.equals("privileges") && admin) { diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/LayoutService.java b/service/src/main/java/lcsb/mapviewer/services/impl/LayoutService.java index d1b2df719b..78513655c6 100644 --- a/service/src/main/java/lcsb/mapviewer/services/impl/LayoutService.java +++ b/service/src/main/java/lcsb/mapviewer/services/impl/LayoutService.java @@ -935,7 +935,7 @@ public class LayoutService implements ILayoutService { ColorSchemaReader reader = new ColorSchemaReader(); Collection<ColorSchema> schemas = reader.readColorSchema(getInputDataForLayout(layoutId, token)); // colors here are not important - ColorModelCommand command = new ColorModelCommand(model, schemas, new ColorExtractor(Color.BLACK, Color.BLACK)); + ColorModelCommand command = new ColorModelCommand(model, schemas, new ColorExtractor(Color.BLACK, Color.BLACK, Color.BLACK)); LightLayoutAliasViewFactory factory = new LightLayoutAliasViewFactory(); List<LightLayoutAliasView> result = new ArrayList<>(); for (Map.Entry<Object, ColorSchema> entry : command.getModifiedElements().entrySet()) { @@ -957,7 +957,7 @@ public class LayoutService implements ILayoutService { ColorSchemaReader reader = new ColorSchemaReader(); Collection<ColorSchema> schemas = reader.readColorSchema(getInputDataForLayout(layoutId, token)); // colors here are not important - ColorModelCommand command = new ColorModelCommand(model, schemas, new ColorExtractor(Color.BLACK, Color.BLACK)); + ColorModelCommand command = new ColorModelCommand(model, schemas, new ColorExtractor(Color.BLACK, Color.BLACK, Color.BLACK)); LightLayoutReactionViewFactory factory = new LightLayoutReactionViewFactory(); List<LightLayoutReactionView> result = new ArrayList<>(); for (Map.Entry<Object, ColorSchema> entry : command.getModifiedElements().entrySet()) { @@ -980,7 +980,7 @@ public class LayoutService implements ILayoutService { Collection<ColorSchema> schemas; schemas = reader.readColorSchema(getInputDataForLayout(layoutId, token)); // colors here are not important - ColorModelCommand command = new ColorModelCommand(model, schemas, new ColorExtractor(Color.BLACK, Color.BLACK)); + ColorModelCommand command = new ColorModelCommand(model, schemas, new ColorExtractor(Color.BLACK, Color.BLACK, Color.BLACK)); return command.getModifiedElements(); } catch (InvalidColorSchemaException e) { throw new InvalidStateException(e); @@ -1002,7 +1002,7 @@ public class LayoutService implements ILayoutService { Collection<ColorSchema> schemas; schemas = reader.readColorSchema(getInputDataForLayout(layoutId, token)); // colors here are not important - ColorModelCommand command = new ColorModelCommand(model, schemas, new ColorExtractor(Color.BLACK, Color.BLACK)); + ColorModelCommand command = new ColorModelCommand(model, schemas, new ColorExtractor(Color.BLACK, Color.BLACK, Color.BLACK)); FullLayoutAliasViewFactory factory = new FullLayoutAliasViewFactory(); List<FullLayoutAliasView> result = new ArrayList<>(); @@ -1059,7 +1059,7 @@ public class LayoutService implements ILayoutService { Collection<ColorSchema> schemas; schemas = reader.readColorSchema(getInputDataForLayout(layoutId, token)); // colors here are not important - ColorModelCommand command = new ColorModelCommand(model, schemas, new ColorExtractor(Color.BLACK, Color.BLACK)); + ColorModelCommand command = new ColorModelCommand(model, schemas, new ColorExtractor(Color.BLACK, Color.BLACK, Color.BLACK)); FullLayoutAliasViewFactory factory = new FullLayoutAliasViewFactory(); for (Map.Entry<Object, ColorSchema> entry : command.getModifiedElements().entrySet()) { @@ -1085,7 +1085,7 @@ public class LayoutService implements ILayoutService { Collection<ColorSchema> schemas; schemas = reader.readColorSchema(getInputDataForLayout(layoutId, token)); // colors here are not important - ColorModelCommand command = new ColorModelCommand(model, schemas, new ColorExtractor(Color.BLACK, Color.BLACK)); + ColorModelCommand command = new ColorModelCommand(model, schemas, new ColorExtractor(Color.BLACK, Color.BLACK, Color.BLACK)); FullLayoutReactionViewFactory factory = new FullLayoutReactionViewFactory(); for (Map.Entry<Object, ColorSchema> entry : command.getModifiedElements().entrySet()) { diff --git a/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java b/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java index 15e752a460..25fa736447 100644 --- a/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java +++ b/service/src/main/java/lcsb/mapviewer/services/impl/UserService.java @@ -473,11 +473,13 @@ public class UserService implements IUserService { public ColorExtractor getColorExtractorForUser(User loggedUser) { Color colorMin = null; Color colorMax = null; + Color colorSimple = null; if (loggedUser != null) { User dbUser = getUserById(loggedUser.getId()); if (dbUser != null) { colorMin = dbUser.getMinColor(); colorMax = dbUser.getMaxColor(); + colorSimple = dbUser.getSimpleColor(); } } ColorParser parser = new ColorParser(); @@ -488,7 +490,10 @@ public class UserService implements IUserService { if (colorMax == null) { colorMax = parser.parse(configurationService.getConfigurationValue(ConfigurationElementType.MAX_COLOR_VAL)); } - return new ColorExtractor(colorMin, colorMax); + if (colorSimple == null) { + colorSimple = parser.parse(configurationService.getConfigurationValue(ConfigurationElementType.SIMPLE_COLOR_VAL)); + } + return new ColorExtractor(colorMin, colorMax, colorSimple); } /** diff --git a/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java b/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java index 94efeff004..3d856d3868 100644 --- a/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java +++ b/service/src/main/java/lcsb/mapviewer/services/utils/ColorSchemaReader.java @@ -573,7 +573,7 @@ public class ColorSchemaReader { String[] values = line.split("\t", -1); ColorSchema schema = new GenericColorSchema(); processNameColumn(schema, values[0]); - schema.setValue(1.0); + schema.setDescription(""); result.add(schema); line = br.readLine(); } diff --git a/service/src/test/java/lcsb/mapviewer/services/impl/LayoutServiceTest2.java b/service/src/test/java/lcsb/mapviewer/services/impl/LayoutServiceTest2.java index 3d409a1875..0d39e9cb6d 100644 --- a/service/src/test/java/lcsb/mapviewer/services/impl/LayoutServiceTest2.java +++ b/service/src/test/java/lcsb/mapviewer/services/impl/LayoutServiceTest2.java @@ -37,7 +37,7 @@ import lcsb.mapviewer.services.utils.data.ColorSchemaType; public class LayoutServiceTest2 { Logger logger = Logger.getLogger(LayoutServiceTest2.class); - ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN); + ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN, Color.BLUE); @Before public void setUp() throws Exception { diff --git a/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderTest.java b/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderTest.java index 38c9407b57..4553b58724 100644 --- a/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderTest.java +++ b/service/src/test/java/lcsb/mapviewer/services/utils/ColorSchemaReaderTest.java @@ -224,7 +224,7 @@ public class ColorSchemaReaderTest extends ServiceTestFunctions { @Test public void testColoring3() throws Exception { try { - ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN); + ColorExtractor colorExtractor = new ColorExtractor(Color.RED, Color.GREEN, Color.BLUE); Model model = getModelForFile("testFiles/coloring/protein_to_color.xml", false); -- GitLab