Skip to content

Commit dda8b28

Browse files
committed
improved color selection.
1 parent 6ea0df7 commit dda8b28

File tree

5 files changed

+101
-150
lines changed

5 files changed

+101
-150
lines changed

pom.xml

+10-7
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
34
<modelVersion>4.0.0</modelVersion>
45
<groupId>org.joget.marketplace</groupId>
5-
<artifactId>status-color-datalist-formatter</artifactId>
6+
<artifactId>status-color-datalist-formatter-with-color-picker</artifactId>
67
<packaging>bundle</packaging>
7-
<version>7.0</version>
8+
<version>8.0</version>
89
<name>status-color-datalist-formatter</name>
910
<url>http://www.joget.org</url>
1011
<build>
@@ -47,7 +48,9 @@
4748
<Export-Package>org.joget.marketplace</Export-Package>
4849
<Private-Package>org.joget.marketplace.*</Private-Package>
4950
<Bundle-Activator>org.joget.marketplace.Activator</Bundle-Activator>
50-
<Import-Package>!*,org.joget.report.dao,org.joget.report.model,org.joget.report.service,org.joget.commons.util,org.joget.plugin.base,org.joget.plugin.property.model,org.joget.plugin.property.service,org.joget.directory.model,org.joget.directory.model.service,org.joget.directory.dao,org.joget.workflow.model,org.joget.workflow.model.dao,org.joget.workflow.model.service,org.joget.workflow.util,org.joget.apps.app.dao,org.joget.apps.app.lib,org.joget.apps.app.model,org.joget.apps.app.service,org.joget.apps.datalist.lib,org.joget.apps.datalist.model,org.joget.apps.datalist.service,org.joget.apps.form.lib,org.joget.apps.form.dao,org.joget.apps.form.model,org.joget.apps.form.service,org.joget.apps.list.service,org.joget.apps.userview.lib,org.joget.apps.userview.model,org.joget.apps.userview.service,org.joget.apps.workflow.lib,javax.servlet,javax.servlet.http,org.osgi.framework;version="1.3.0"</Import-Package>
51+
<Import-Package>
52+
!*,org.joget.report.dao,org.joget.report.model,org.joget.report.service,org.joget.commons.util,org.joget.plugin.base,org.joget.plugin.property.model,org.joget.plugin.property.service,org.joget.directory.model,org.joget.directory.model.service,org.joget.directory.dao,org.joget.workflow.model,org.joget.workflow.model.dao,org.joget.workflow.model.service,org.joget.workflow.util,org.joget.apps.app.dao,org.joget.apps.app.lib,org.joget.apps.app.model,org.joget.apps.app.service,org.joget.apps.datalist.lib,org.joget.apps.datalist.model,org.joget.apps.datalist.service,org.joget.apps.form.lib,org.joget.apps.form.dao,org.joget.apps.form.model,org.joget.apps.form.service,org.joget.apps.list.service,org.joget.apps.userview.lib,org.joget.apps.userview.model,org.joget.apps.userview.service,org.joget.apps.workflow.lib,javax.servlet,javax.servlet.http,org.osgi.framework;version="1.3.0"
53+
</Import-Package>
5154
<!-- End change package and plugin class here -->
5255
<Embed-Dependency>*;scope=compile|runtime;inline=false</Embed-Dependency>
5356
<Embed-Transitive>true</Embed-Transitive>
@@ -78,18 +81,18 @@
7881
<version>2.5.6.SEC03</version>
7982
<scope>test</scope>
8083
</dependency>
81-
<dependency>
84+
<dependency>
8285
<groupId>org.joget</groupId>
8386
<artifactId>wflow-core</artifactId>
84-
<version>7.0-SNAPSHOT</version>
87+
<version>8.0-SNAPSHOT</version>
8588
<type>jar</type>
8689
<exclusions>
8790
<exclusion>
8891
<groupId>javax.servlet</groupId>
8992
<artifactId>javax.servlet-api</artifactId>
9093
</exclusion>
9194
</exclusions>
92-
<scope>provided</scope>
95+
<scope>provided</scope>
9396
</dependency>
9497
</dependencies>
9598
<distributionManagement>

sample-screenshot.png

79.9 KB
Loading

src/main/java/org/joget/marketplace/StatusColorDatalistFormatter.java

+47-46
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,5 @@
11
package org.joget.marketplace;
22

3-
import java.util.ArrayList;
4-
import java.util.Collection;
5-
import java.util.HashMap;
6-
import java.util.Map;
73
import org.joget.apps.app.model.AppDefinition;
84
import org.joget.apps.app.service.AppPluginUtil;
95
import org.joget.apps.app.service.AppUtil;
@@ -12,73 +8,78 @@
128
import org.joget.apps.datalist.model.DataListColumnFormatDefault;
139
import org.joget.commons.util.LogUtil;
1410

15-
public class StatusColorDatalistFormatter extends DataListColumnFormatDefault{
11+
import java.util.ArrayList;
12+
import java.util.Collection;
13+
import java.util.HashMap;
14+
import java.util.Map;
15+
16+
public class StatusColorDatalistFormatter extends DataListColumnFormatDefault {
1617

17-
private final static String MESSAGE_PATH = "messages/StatusColorDatalistFormatter";
18+
private final static String MESSAGE_PATH = "messages/StatusColorDatalistFormatter";
1819

1920
public String getName() {
2021
return "Status Color Datalist Formatter";
2122
}
2223

2324
public String getVersion() {
24-
return "7.0.0";
25+
return "8.0.0";
2526
}
2627

2728
public String getDescription() {
2829
//support i18n
29-
//=======================================================================================================
30+
//=======================================================================================================
3031
return AppPluginUtil.getMessage("org.joget.marketplace.StatusColorDatalistFormatter.pluginDesc", getClassName(), MESSAGE_PATH);
3132
}
3233

3334
@Override
3435
public String format(DataList dataList, DataListColumn column, Object row, Object value) {
3536
AppDefinition appDef = AppUtil.getCurrentAppDefinition();
3637
String result = (String) value;
37-
38+
3839
if (result != null && !result.isEmpty()) {
3940
try {
40-
boolean isCaseSensitive = false;
41-
if(getPropertyString("statusCaseSensitivity") != null){
42-
isCaseSensitive = Boolean.parseBoolean(getPropertyString("statusCaseSensitivity"));
43-
}
44-
// set options
41+
boolean isCaseSensitive = false;
42+
if (getPropertyString("statusCaseSensitivity") != null) {
43+
isCaseSensitive = Boolean.parseBoolean(getPropertyString("statusCaseSensitivity"));
44+
}
45+
// set options
4546
Object[] options = (Object[]) getProperty("options");
46-
Collection<Map> optionMap = new ArrayList<>();
47-
48-
for (Object o : options) {
49-
Map mapping = (HashMap) o;
50-
51-
//case must match
52-
if (isCaseSensitive){
53-
if(((String)value).equals((String)mapping.get("value"))){
54-
result = "<p style=\"color: white; background-color: " + (String)mapping.get("backgroundColor") +
55-
"; white-space: nowrap; border-radius: 8px; padding:6px; text-align: center; margin: 0px; \">" +
56-
(String)mapping.get("label") + "</p>";
57-
}
58-
}
59-
60-
//no case required
61-
else{
62-
if(((String)value).equalsIgnoreCase((String)mapping.get("value"))){
63-
result = "<p style=\"color: white; background-color: " + (String)mapping.get("backgroundColor") +
64-
"; white-space: nowrap; border-radius: 8px; padding:6px; text-align: center; margin: 0px; \">" +
65-
(String)mapping.get("label") + "</p>";
66-
}
67-
}
68-
69-
optionMap.add(mapping);
70-
}
71-
72-
Map model = new HashMap();
73-
model.put("options", optionMap);
74-
model.put("columnName", column.getName());
75-
model.put("element", this);
47+
Collection<Map> optionMap = new ArrayList<>();
48+
49+
for (Object o : options) {
50+
Map mapping = (HashMap) o;
51+
52+
//case must match
53+
if (isCaseSensitive) {
54+
if (value.equals(mapping.get("value"))) {
55+
result = "<p style=\"background-color: " + mapping.get("backgroundColor") +
56+
";color: " + mapping.get("textColor") + ";white-space: nowrap; border-radius: 8px; padding:6px; text-align: center; margin: 0px; \">" +
57+
mapping.get("label") + "</p>";
58+
}
59+
}
60+
61+
//no case required
62+
else {
63+
if (((String) value).equalsIgnoreCase((String) mapping.get("value"))) {
64+
result = "<p style=\"background-color: " + mapping.get("backgroundColor") +
65+
";color: " + mapping.get("textColor") + ";white-space: nowrap; border-radius: 8px; padding:6px; text-align: center; margin: 0px; \">" +
66+
mapping.get("label") + "</p>";
67+
}
68+
}
69+
70+
optionMap.add(mapping);
71+
}
72+
73+
Map model = new HashMap();
74+
model.put("options", optionMap);
75+
model.put("columnName", column.getName());
76+
model.put("element", this);
7677

7778
} catch (Exception e) {
7879
LogUtil.error(getClassName(), e, "");
7980
}
80-
}
81-
return result;
81+
}
82+
return result;
8283
}
8384

8485
public String getLabel() {

src/main/resources/messages/StatusColorDatalistFormatter.properties

+1-13
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,4 @@ org.joget.marketplace.StatusColorDatalistFormatter.options=Status
66
org.joget.marketplace.StatusColorDatalistFormatter.value=Value
77
org.joget.marketplace.StatusColorDatalistFormatter.label=Label
88
org.joget.marketplace.StatusColorDatalistFormatter.backgroundColor=Background Color
9-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.red=Red
10-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.pink=Pink
11-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.orange=Orange
12-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.yellow=Yellow
13-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.green=Green
14-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.blue=Blue
15-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.purple=Purple
16-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.black=Black
17-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.cyan=Cyan
18-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.lime=Lime
19-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.grey=Grey
20-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.silver=Silver
21-
org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.brown=Brown
9+
org.joget.marketplace.StatusColorDatalistFormatter.textColor=Text Color
Original file line numberDiff line numberDiff line change
@@ -1,86 +1,45 @@
1-
[{
2-
"title" : "@@org.joget.marketplace.StatusColorDatalistFormatter.config@@",
3-
"properties" : [
4-
{
5-
"name" : "statusCaseSensitivity",
6-
"label" : "@@org.joget.marketplace.StatusColorDatalistFormatter.statusCaseSensitivity@@",
7-
"type" : "checkbox",
8-
"options" : [{
9-
"value" : "true",
10-
"label" : ""
11-
}]
12-
},
13-
{
14-
"name":"options",
15-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.options@@",
16-
"type":"grid",
17-
"columns":[
18-
{
19-
"key":"value",
20-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.value@@"
21-
},
22-
{
23-
"key":"label",
24-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.label@@"
25-
},
26-
{
27-
"key":"backgroundColor",
28-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.backgroundColor@@",
29-
"options": [{
30-
"value":"RED",
31-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.red@@"
32-
},
33-
{
34-
"value":"PINK",
35-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.pink@@"
36-
},
37-
{
38-
"value":"ORANGE",
39-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.orange@@"
40-
},
41-
{
42-
"value":"YELLOW",
43-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.yellow@@"
44-
},
45-
{
46-
"value":"GREEN",
47-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.green@@"
48-
},
49-
{
50-
"value":"BLUE",
51-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.blue@@"
52-
},
53-
{
54-
"value":"PURPLE",
55-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.purple@@"
56-
},
57-
{
58-
"value":"BLACK",
59-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.black@@"
60-
},
61-
{
62-
"value":"CYAN",
63-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.cyan@@"
64-
},
65-
{
66-
"value":"LIME",
67-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.lime@@"
68-
},
69-
{
70-
"value":"GREY",
71-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.grey@@"
72-
},
73-
{
74-
"value":"SILVER",
75-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.silver@@"
76-
},
77-
{
78-
"value":"BROWN",
79-
"label":"@@org.joget.marketplace.StatusColorDatalistFormatter.colorScheme.brown@@"
80-
}
81-
]
82-
}
1+
[
2+
{
3+
"title": "@@org.joget.marketplace.StatusColorDatalistFormatter.config@@",
4+
"properties": [
5+
{
6+
"name": "statusCaseSensitivity",
7+
"label": "@@org.joget.marketplace.StatusColorDatalistFormatter.statusCaseSensitivity@@",
8+
"type": "checkbox",
9+
"options": [
10+
{
11+
"value": "true",
12+
"label": ""
13+
}
8314
]
84-
}
15+
},
16+
{
17+
"name": "options",
18+
"label": "@@org.joget.marketplace.StatusColorDatalistFormatter.options@@",
19+
"type": "grid",
20+
"columns": [
21+
{
22+
"key": "value",
23+
"label": "@@org.joget.marketplace.StatusColorDatalistFormatter.value@@"
24+
},
25+
{
26+
"key": "label",
27+
"label": "@@org.joget.marketplace.StatusColorDatalistFormatter.label@@"
28+
},
29+
{
30+
"key": "backgroundColor",
31+
"label": "@@org.joget.marketplace.StatusColorDatalistFormatter.backgroundColor@@",
32+
"type": "color",
33+
"value": "#DEFEE8"
34+
},
35+
{
36+
"key": "textColor",
37+
"label": "@@org.joget.marketplace.StatusColorDatalistFormatter.textColor@@",
38+
"type": "color",
39+
"value": "#17C653"
40+
}
41+
]
42+
}
8543
]
86-
}]
44+
}
45+
]

0 commit comments

Comments
 (0)