From: <udi...@us...> - 2022-02-14 08:38:58
|
Revision: 1435 http://sourceforge.net/p/j-trac/code/1435 Author: udittmer Date: 2022-02-14 08:38:55 +0000 (Mon, 14 Feb 2022) Log Message: ----------- made color choices use HTML5 color input fields Modified Paths: -------------- trunk/jtrac/src/main/java/info/jtrac/domain/Config.java trunk/jtrac/src/main/java/info/jtrac/util/WebUtils.java trunk/jtrac/src/main/java/info/jtrac/wicket/BasePage.java trunk/jtrac/src/main/java/info/jtrac/wicket/ConfigFormPage.html trunk/jtrac/src/main/java/info/jtrac/wicket/ConfigFormPage.java trunk/jtrac/src/main/java/info/jtrac/wicket/LoginPage.java trunk/jtrac/src/main/java/info/jtrac/wicket/LogoutPage.java Added Paths: ----------- trunk/jtrac/src/main/java/org/apache/wicket/markup/html/form/ColorField.java Modified: trunk/jtrac/src/main/java/info/jtrac/domain/Config.java =================================================================== --- trunk/jtrac/src/main/java/info/jtrac/domain/Config.java 2022-02-13 12:41:17 UTC (rev 1434) +++ trunk/jtrac/src/main/java/info/jtrac/domain/Config.java 2022-02-14 08:38:55 UTC (rev 1435) @@ -33,6 +33,7 @@ private static final Set<String> PARAMS; private static final Set<String> BOOLEAN_PARAMS; private static final Set<String> NUMBER_PARAMS; + private static final Set<String> COLOR_PARAMS; // set up a static set of valid config key names static { @@ -84,6 +85,15 @@ NUMBER_PARAMS.add("attachment.maxsize"); NUMBER_PARAMS.add("pwd.minLength"); NUMBER_PARAMS.add("items.search.num"); + + COLOR_PARAMS = new LinkedHashSet<String>(); + COLOR_PARAMS.add("jtrac.color.gray"); + COLOR_PARAMS.add("jtrac.color.header"); + COLOR_PARAMS.add("jtrac.color.lightblue"); + COLOR_PARAMS.add("jtrac.color.mediumblue"); + COLOR_PARAMS.add("jtrac.color.darkblue"); + COLOR_PARAMS.add("jtrac.color.error"); + COLOR_PARAMS.add("jtrac.color.errorbg"); } public static Set<String> getParams() { @@ -98,6 +108,10 @@ return NUMBER_PARAMS.contains(param); } + public static boolean isColor (String param) { + return COLOR_PARAMS.contains(param); + } + public Config() { // zero arg constructor } Modified: trunk/jtrac/src/main/java/info/jtrac/util/WebUtils.java =================================================================== --- trunk/jtrac/src/main/java/info/jtrac/util/WebUtils.java 2022-02-13 12:41:17 UTC (rev 1434) +++ trunk/jtrac/src/main/java/info/jtrac/util/WebUtils.java 2022-02-14 08:38:55 UTC (rev 1435) @@ -16,8 +16,15 @@ package info.jtrac.util; +import info.jtrac.Jtrac; +import info.jtrac.wicket.JtracApplication; + import javax.servlet.http.Cookie; +import org.apache.wicket.behavior.HeaderContributor; +import org.apache.wicket.markup.html.IHeaderContributor; +import org.apache.wicket.markup.html.IHeaderResponse; + /** * utilities for http, web related stuff etc */ @@ -33,5 +40,29 @@ + "maxAge: '" + cookie.getMaxAge() + "', " + "comment: '" + cookie.getComment() + "'"; } - + + public static HeaderContributor getColorChangeHeaderContributor() { + Jtrac jtrac = JtracApplication.get().getJtrac(); + String colorGray = jtrac.loadConfig("jtrac.color.gray", "#CCCCCC"); + String colorHeader = jtrac.loadConfig("jtrac.color.header", "#E1ECFE"); + String colorLightBlue = jtrac.loadConfig("jtrac.color.lightblue", "#E1ECFE"); + String colorMediumBlue = jtrac.loadConfig("jtrac.color.mediumblue", "#C3D9FF"); + String colorDarkBlue = jtrac.loadConfig("jtrac.color.darkblue", "#0000D9"); + String colorError = jtrac.loadConfig("jtrac.color.error", "#CC2200"); + String colorErrorBg = jtrac.loadConfig("jtrac.color.errorbg", "#FFB6C1"); + + return new HeaderContributor(new IHeaderContributor() { + public void renderHead(IHeaderResponse response) { + String js = "var r = document.querySelector(':root');\n" + + "r.style.setProperty('--header', '"+colorHeader+"');\n" + + "r.style.setProperty('--lightblue', '"+colorLightBlue+"');\n" + + "r.style.setProperty('--mediumblue', '"+colorMediumBlue+"');\n" + + "r.style.setProperty('--darkblue', '"+colorDarkBlue+"');\n" + + "r.style.setProperty('--error', '"+colorError+"');\n" + + "r.style.setProperty('--errorbg', '"+colorErrorBg+"');\n" + + "r.style.setProperty('--gray', '"+colorGray+"');\n"; + response.renderOnDomReadyJavascript(js); + } + }); + } } Modified: trunk/jtrac/src/main/java/info/jtrac/wicket/BasePage.java =================================================================== --- trunk/jtrac/src/main/java/info/jtrac/wicket/BasePage.java 2022-02-13 12:41:17 UTC (rev 1434) +++ trunk/jtrac/src/main/java/info/jtrac/wicket/BasePage.java 2022-02-14 08:38:55 UTC (rev 1435) @@ -20,13 +20,12 @@ import info.jtrac.domain.ColumnHeading.Name; import info.jtrac.domain.Space; import info.jtrac.domain.User; +import info.jtrac.util.WebUtils; + import java.util.EnumMap; import java.util.Map; import org.apache.wicket.Component; -import org.apache.wicket.behavior.HeaderContributor; -import org.apache.wicket.markup.html.IHeaderContributor; -import org.apache.wicket.markup.html.IHeaderResponse; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.model.StringResourceModel; @@ -35,11 +34,9 @@ import org.slf4j.LoggerFactory; /** - * base class for all wicket pages, this provides - * a way to access the spring managed service layer - * as well as other convenience common methods - * also takes care of the standard template for all - * pages which is using wicket markup inheritance + * base class for all wicket pages, this provides a way to access the spring managed service layer + * as well as other convenience common methods also takes care of the standard template for all + * pages which are using wicket markup inheritance */ public abstract class BasePage extends WebPage { @@ -81,30 +78,10 @@ } public BasePage() { - String colorGray = JtracApplication.get().getJtrac().loadConfig("jtrac.color.gray", "#CCCCCC"); - String colorHeader = JtracApplication.get().getJtrac().loadConfig("jtrac.color.header", "#E1ECFE"); - String colorLightBlue = JtracApplication.get().getJtrac().loadConfig("jtrac.color.lightblue", "#E1ECFE"); - String colorMediumBlue = JtracApplication.get().getJtrac().loadConfig("jtrac.color.mediumblue", "#C3D9FF"); - String colorDarkBlue = JtracApplication.get().getJtrac().loadConfig("jtrac.color.darkblue", "#0000D9"); - String colorError = JtracApplication.get().getJtrac().loadConfig("jtrac.color.error", "#CC2200"); - String colorErrorBg = JtracApplication.get().getJtrac().loadConfig("jtrac.color.errorbg", "#FFB6C1"); - add(new IndividualHeadPanel().setRenderBodyOnly(true)); add(new HeaderPanel().setRenderBodyOnly(true)); String jtracVersion = getJtrac().getReleaseVersion(); add(new Label("version", jtracVersion)); - add(new HeaderContributor(new IHeaderContributor() { - public void renderHead(IHeaderResponse response) { - String js = "var r = document.querySelector(':root');\n" - + "r.style.setProperty('--header', '"+colorHeader+"');\n" - + "r.style.setProperty('--lightblue', '"+colorLightBlue+"');\n" - + "r.style.setProperty('--mediumblue', '"+colorMediumBlue+"');\n" - + "r.style.setProperty('--darkblue', '"+colorDarkBlue+"');\n" - + "r.style.setProperty('--error', '"+colorError+"');\n" - + "r.style.setProperty('--errorbg', '"+colorErrorBg+"');\n" - + "r.style.setProperty('--gray', '"+colorGray+"');\n"; - response.renderOnDomReadyJavascript(js); - } - })); + add(WebUtils.getColorChangeHeaderContributor()); } } Modified: trunk/jtrac/src/main/java/info/jtrac/wicket/ConfigFormPage.html =================================================================== --- trunk/jtrac/src/main/java/info/jtrac/wicket/ConfigFormPage.html 2022-02-13 12:41:17 UTC (rev 1434) +++ trunk/jtrac/src/main/java/info/jtrac/wicket/ConfigFormPage.html 2022-02-14 08:38:55 UTC (rev 1435) @@ -18,6 +18,7 @@ <wicket:fragment wicket:id="textField"><input wicket:id="value"/></wicket:fragment> <wicket:fragment wicket:id="numberField"><input type="number" min="0" size="8" wicket:id="value"/></wicket:fragment> <wicket:fragment wicket:id="booleanField"><input type="hidden" wicket:id="value" id="valueField"/><div class="switch"></div></wicket:fragment> + <wicket:fragment wicket:id="colorField"><input type="color" wicket:id="value"/></wicket:fragment> </wicket:extend> </body> </html> Modified: trunk/jtrac/src/main/java/info/jtrac/wicket/ConfigFormPage.java =================================================================== --- trunk/jtrac/src/main/java/info/jtrac/wicket/ConfigFormPage.java 2022-02-13 12:41:17 UTC (rev 1434) +++ trunk/jtrac/src/main/java/info/jtrac/wicket/ConfigFormPage.java 2022-02-14 08:38:55 UTC (rev 1435) @@ -23,6 +23,7 @@ import org.apache.wicket.markup.html.IHeaderResponse; import org.apache.wicket.markup.html.basic.Label; import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.html.form.ColorField; import org.apache.wicket.markup.html.form.HiddenField; import org.apache.wicket.markup.html.form.NumberField; import org.apache.wicket.markup.html.form.TextField; @@ -52,6 +53,7 @@ private String param; private String value; private boolean isBoolean; + private boolean isColor; private boolean isNumber; public String getValue() { return value; } @@ -64,6 +66,7 @@ this.value = value; this.isBoolean = Config.isBoolean(param); this.isNumber = Config.isNumber(param); + this.isColor = Config.isColor(param); final BoundCompoundPropertyModel model = new BoundCompoundPropertyModel(this); setModel(model); @@ -95,6 +98,7 @@ HiddenField hiddenField = new HiddenField("value"); f.add(model.bind(hiddenField)); add(f); + } else if (isNumber) { // only difference is type="number" instead of type="text" Fragment f = new Fragment("field", "numberField", ConfigFormPage.this); @@ -102,6 +106,13 @@ f.add(model.bind(numberField)); add(f); + } else if (isColor) { + // only difference is type="color" instead of type="text" + Fragment f = new Fragment("field", "colorField", ConfigFormPage.this); + ColorField colorField = new ColorField("value"); + f.add(model.bind(colorField)); + add(f); + } else { // regular text input field Fragment f = new Fragment("field", "textField", ConfigFormPage.this); Modified: trunk/jtrac/src/main/java/info/jtrac/wicket/LoginPage.java =================================================================== --- trunk/jtrac/src/main/java/info/jtrac/wicket/LoginPage.java 2022-02-13 12:41:17 UTC (rev 1434) +++ trunk/jtrac/src/main/java/info/jtrac/wicket/LoginPage.java 2022-02-14 08:38:55 UTC (rev 1435) @@ -18,7 +18,9 @@ import info.jtrac.domain.User; import info.jtrac.util.WebUtils; + import javax.servlet.http.Cookie; + import org.apache.wicket.behavior.HeaderContributor; import org.apache.wicket.markup.html.IHeaderContributor; import org.apache.wicket.markup.html.IHeaderResponse; @@ -31,6 +33,7 @@ import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.markup.html.panel.FeedbackPanel; import org.apache.wicket.model.BoundCompoundPropertyModel; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -53,27 +56,7 @@ add(new LoginForm("form")); String jtracVersion = JtracApplication.get().getJtrac().getReleaseVersion(); add(new Label("version", jtracVersion)); - - String colorGray = JtracApplication.get().getJtrac().loadConfig("jtrac.color.gray", "#CCCCCC"); - String colorHeader = JtracApplication.get().getJtrac().loadConfig("jtrac.color.header", "#E1ECFE"); - String colorLightBlue = JtracApplication.get().getJtrac().loadConfig("jtrac.color.lightblue", "#E1ECFE"); - String colorMediumBlue = JtracApplication.get().getJtrac().loadConfig("jtrac.color.mediumblue", "#C3D9FF"); - String colorDarkBlue = JtracApplication.get().getJtrac().loadConfig("jtrac.color.darkblue", "#0000D9"); - String colorError = JtracApplication.get().getJtrac().loadConfig("jtrac.color.error", "#CC2200"); - String colorErrorBg = JtracApplication.get().getJtrac().loadConfig("jtrac.color.errorbg", "#FFB6C1"); - add(new HeaderContributor(new IHeaderContributor() { - public void renderHead(IHeaderResponse response) { - String js = "var r = document.querySelector(':root');\n" - + "r.style.setProperty('--header', '"+colorHeader+"');\n" - + "r.style.setProperty('--lightblue', '"+colorLightBlue+"');\n" - + "r.style.setProperty('--mediumblue', '"+colorMediumBlue+"');\n" - + "r.style.setProperty('--darkblue', '"+colorDarkBlue+"');\n" - + "r.style.setProperty('--error', '"+colorError+"');\n" - + "r.style.setProperty('--errorbg', '"+colorErrorBg+"');\n" - + "r.style.setProperty('--gray', '"+colorGray+"');\n"; - response.renderOnDomReadyJavascript(js); - } - })); + add(WebUtils.getColorChangeHeaderContributor()); } /** Modified: trunk/jtrac/src/main/java/info/jtrac/wicket/LogoutPage.java =================================================================== --- trunk/jtrac/src/main/java/info/jtrac/wicket/LogoutPage.java 2022-02-13 12:41:17 UTC (rev 1434) +++ trunk/jtrac/src/main/java/info/jtrac/wicket/LogoutPage.java 2022-02-14 08:38:55 UTC (rev 1435) @@ -16,15 +16,16 @@ package info.jtrac.wicket; +import info.jtrac.util.WebUtils; + import org.apache.wicket.PageParameters; -import org.apache.wicket.behavior.HeaderContributor; -import org.apache.wicket.markup.html.IHeaderContributor; -import org.apache.wicket.markup.html.IHeaderResponse; import org.apache.wicket.markup.html.WebPage; import org.apache.wicket.markup.html.basic.Label; + +import org.springframework.util.StringUtils; + import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.util.StringUtils; /** * logout page. the session invalidation code is in HeaderPanel @@ -43,26 +44,6 @@ add(new Label("title", getLocalizer().getString("logout.title", null))); String jtracVersion = JtracApplication.get().getJtrac().getReleaseVersion(); add(new Label("version", jtracVersion)); - - String colorGray = JtracApplication.get().getJtrac().loadConfig("jtrac.color.gray", "#CCCCCC"); - String colorHeader = JtracApplication.get().getJtrac().loadConfig("jtrac.color.header", "#E1ECFE"); - String colorLightBlue = JtracApplication.get().getJtrac().loadConfig("jtrac.color.lightblue", "#E1ECFE"); - String colorMediumBlue = JtracApplication.get().getJtrac().loadConfig("jtrac.color.mediumblue", "#C3D9FF"); - String colorDarkBlue = JtracApplication.get().getJtrac().loadConfig("jtrac.color.darkblue", "#0000D9"); - String colorError = JtracApplication.get().getJtrac().loadConfig("jtrac.color.error", "#CC2200"); - String colorErrorBg = JtracApplication.get().getJtrac().loadConfig("jtrac.color.errorbg", "#FFB6C1"); - add(new HeaderContributor(new IHeaderContributor() { - public void renderHead(IHeaderResponse response) { - String js = "var r = document.querySelector(':root');\n" - + "r.style.setProperty('--header', '"+colorHeader+"');\n" - + "r.style.setProperty('--lightblue', '"+colorLightBlue+"');\n" - + "r.style.setProperty('--mediumblue', '"+colorMediumBlue+"');\n" - + "r.style.setProperty('--darkblue', '"+colorDarkBlue+"');\n" - + "r.style.setProperty('--error', '"+colorError+"');\n" - + "r.style.setProperty('--errorbg', '"+colorErrorBg+"');\n" - + "r.style.setProperty('--gray', '"+colorGray+"');\n"; - response.renderOnDomReadyJavascript(js); - } - })); + add(WebUtils.getColorChangeHeaderContributor()); } } Added: trunk/jtrac/src/main/java/org/apache/wicket/markup/html/form/ColorField.java =================================================================== --- trunk/jtrac/src/main/java/org/apache/wicket/markup/html/form/ColorField.java (rev 0) +++ trunk/jtrac/src/main/java/org/apache/wicket/markup/html/form/ColorField.java 2022-02-14 08:38:55 UTC (rev 1435) @@ -0,0 +1,88 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.wicket.markup.html.form; + +import org.apache.wicket.model.IModel; + +/** + * TextField doesn't permit the html <input type='color'> so this is a simple subclass to allow this + * + * @author Ulf Dittmer + */ +public class ColorField extends TextField +{ + private static final long serialVersionUID = 1L; + + /** + * Construct. + * + * @param id + * component id + */ + public ColorField(String id) + { + super(id); + } + + /** + * Construct. + * + * @param id + * component id + * @param type + * the type to use when updating the model for this text field + */ + public ColorField(String id, Class type) + { + super(id, type); + } + + /** + * Construct. + * + * @param id + * see Component + * @param model + * the model + */ + public ColorField(String id, IModel model) + { + super(id, model); + } + + /** + * @param id + * component id + * @param model + * the model + * @param type + * the type to use when updating the model for this text field + * @see org.apache.wicket.Component#Component(String, IModel) + */ + public ColorField(String id, IModel model, Class type) + { + super(id, model, type); + } + + /** + * @see org.apache.wicket.markup.html.form.TextField#getInputType() + */ + protected String getInputType() + { + return "color"; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |