You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2013/06/27 15:10:31 UTC
git commit: WICKET-5257 Make css class strings used in the framework
configurable
Updated Branches:
refs/heads/5257-css-settings [created] 2f87d0b4e
WICKET-5257 Make css class strings used in the framework configurable
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/2f87d0b4
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/2f87d0b4
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/2f87d0b4
Branch: refs/heads/5257-css-settings
Commit: 2f87d0b4e0ad86d5900c39119cbc23c9cd74e3d6
Parents: 0d134f5
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Thu Jun 27 16:10:04 2013 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Thu Jun 27 16:10:04 2013 +0300
----------------------------------------------------------------------
.../java/org/apache/wicket/Application.java | 28 +++
.../markup/html/form/AutoLabelResolver.java | 9 +-
.../markup/html/form/FormComponentLabel.java | 9 +-
.../markup/html/list/OddEvenListItem.java | 8 +-
.../wicket/markup/html/panel/FeedbackPanel.java | 2 +-
.../wicket/markup/repeater/OddEvenItem.java | 8 +-
.../apache/wicket/settings/ICssSettings.java | 76 ++++++++
.../apache/wicket/settings/def/CssSettings.java | 186 ++++++++++++++++++
.../data/sort/AjaxFallbackOrderByBorder.java | 40 +---
.../data/sort/AjaxFallbackOrderByLink.java | 34 +---
.../html/repeater/data/sort/OrderByBorder.java | 29 +--
.../html/repeater/data/sort/OrderByLink.java | 193 ++-----------------
.../markup/html/tabs/TabbedPanel.java | 6 +-
.../java/org/apache/wicket/jmx/CssSettings.java | 170 ++++++++++++++++
.../org/apache/wicket/jmx/CssSettingsMBean.java | 26 +++
.../java/org/apache/wicket/jmx/Initializer.java | 2 +
16 files changed, 539 insertions(+), 287 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-core/src/main/java/org/apache/wicket/Application.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/Application.java b/wicket-core/src/main/java/org/apache/wicket/Application.java
index 5cbbdde..16989c6 100644
--- a/wicket-core/src/main/java/org/apache/wicket/Application.java
+++ b/wicket-core/src/main/java/org/apache/wicket/Application.java
@@ -85,6 +85,7 @@ import org.apache.wicket.session.DefaultPageFactory;
import org.apache.wicket.session.ISessionStore;
import org.apache.wicket.session.ISessionStore.UnboundListener;
import org.apache.wicket.settings.IApplicationSettings;
+import org.apache.wicket.settings.ICssSettings;
import org.apache.wicket.settings.IDebugSettings;
import org.apache.wicket.settings.IExceptionSettings;
import org.apache.wicket.settings.IFrameworkSettings;
@@ -97,6 +98,7 @@ import org.apache.wicket.settings.IResourceSettings;
import org.apache.wicket.settings.ISecuritySettings;
import org.apache.wicket.settings.IStoreSettings;
import org.apache.wicket.settings.def.ApplicationSettings;
+import org.apache.wicket.settings.def.CssSettings;
import org.apache.wicket.settings.def.DebugSettings;
import org.apache.wicket.settings.def.ExceptionSettings;
import org.apache.wicket.settings.def.FrameworkSettings;
@@ -1039,6 +1041,9 @@ public abstract class Application implements UnboundListener, IEventSink
/** The Markup Settings */
private IMarkupSettings markupSettings;
+ /** The CSS Settings */
+ private ICssSettings cssSettings;
+
/** The Page Settings */
private IPageSettings pageSettings;
@@ -1239,6 +1244,29 @@ public abstract class Application implements UnboundListener, IEventSink
this.markupSettings = markupSettings;
}
+
+ /**
+ * @return Application's CSS related settings
+ */
+ public ICssSettings getCssSettings()
+ {
+ checkSettingsAvailable();
+ if (cssSettings == null)
+ {
+ cssSettings = new CssSettings();
+ }
+ return cssSettings;
+ }
+
+ /**
+ * @param cssSettings
+ */
+ public final void setCssSettings(final ICssSettings cssSettings)
+ {
+ this.cssSettings = cssSettings;
+ }
+
+
/**
* @return Application's request logger related settings
*/
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
index 562e6ed..f99cd94 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/AutoLabelResolver.java
@@ -23,6 +23,7 @@ import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.MarkupStream;
import org.apache.wicket.markup.html.TransparentWebMarkupContainer;
import org.apache.wicket.markup.resolver.IComponentResolver;
+import org.apache.wicket.settings.ICssSettings;
import org.apache.wicket.util.visit.IVisit;
import org.apache.wicket.util.visit.IVisitor;
import org.slf4j.Logger;
@@ -185,22 +186,24 @@ public class AutoLabelResolver implements IComponentResolver
super.onComponentTag(tag);
tag.put("for", component.getMarkupId());
+ ICssSettings cssSettings = getApplication().getCssSettings();
+
if (component instanceof FormComponent)
{
FormComponent<?> fc = (FormComponent<?>)component;
if (fc.isRequired())
{
- tag.append("class", "required", " ");
+ tag.append("class", cssSettings.getRequiredCssClass(), " ");
}
if (!fc.isValid())
{
- tag.append("class", "error", " ");
+ tag.append("class", cssSettings.getInvalidCssClass(), " ");
}
}
if (!component.isEnabledInHierarchy())
{
- tag.append("class", "disabled", " ");
+ tag.append("class", cssSettings.getDisabledCssClass(), " ");
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentLabel.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentLabel.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentLabel.java
index 59d34d9..c5ebd6f 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentLabel.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/form/FormComponentLabel.java
@@ -19,6 +19,7 @@ package org.apache.wicket.markup.html.form;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.WebMarkupContainer;
import org.apache.wicket.markup.parser.XmlTag.TagType;
+import org.apache.wicket.settings.ICssSettings;
import org.apache.wicket.util.lang.Args;
/**
@@ -65,23 +66,25 @@ public class FormComponentLabel extends WebMarkupContainer
tag.put("for", formComponent.getMarkupId());
+ ICssSettings cssSettings = getApplication().getCssSettings();
+
if (formComponent instanceof FormComponent<?>)
{
FormComponent<?> fc = (FormComponent<?>) formComponent;
if (fc.isRequired())
{
- tag.append("class", "required", " ");
+ tag.append("class", cssSettings.getRequiredCssClass(), " ");
}
if (fc.isValid() == false)
{
- tag.append("class", "error", " ");
+ tag.append("class", cssSettings.getInvalidCssClass(), " ");
}
}
if (formComponent.isEnabledInHierarchy() == false)
{
- tag.append("class", "disabled", " ");
+ tag.append("class", cssSettings.getDisabledCssClass(), " ");
}
// always transform the tag to <span></span> so even labels defined as <span/> render
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-core/src/main/java/org/apache/wicket/markup/html/list/OddEvenListItem.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/list/OddEvenListItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/list/OddEvenListItem.java
index fe4b1b7..80db38e 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/list/OddEvenListItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/list/OddEvenListItem.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.html.list;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.settings.ICssSettings;
/**
* ListItem that adds <code>class="odd"</code> or <code>class="even"</code> html attribute depending
@@ -30,9 +31,6 @@ public class OddEvenListItem<T> extends ListItem<T>
{
private static final long serialVersionUID = 1L;
- private static final String CLASS_EVEN = "even";
- private static final String CLASS_ODD = "odd";
-
/**
* Constructor
*
@@ -51,6 +49,8 @@ public class OddEvenListItem<T> extends ListItem<T>
protected void onComponentTag(ComponentTag tag)
{
super.onComponentTag(tag);
- tag.append("class", (getIndex() % 2 == 0) ? CLASS_EVEN : CLASS_ODD, " ");
+
+ ICssSettings cssSettings = getApplication().getCssSettings();
+ tag.append("class", (getIndex() % 2 == 0) ? cssSettings.getEvenItemCssClass() : cssSettings.getOddItemCssClass(), " ");
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java b/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
index 968a93c..2dba2a6 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/html/panel/FeedbackPanel.java
@@ -291,7 +291,7 @@ public class FeedbackPanel extends Panel implements IFeedback
*/
protected String getCSSClass(final FeedbackMessage message)
{
- return "feedbackPanel" + message.getLevelAsString();
+ return getApplication().getCssSettings().getFeedbackMessageCssClass(message);
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-core/src/main/java/org/apache/wicket/markup/repeater/OddEvenItem.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/markup/repeater/OddEvenItem.java b/wicket-core/src/main/java/org/apache/wicket/markup/repeater/OddEvenItem.java
index 49f006f..5d828ec 100644
--- a/wicket-core/src/main/java/org/apache/wicket/markup/repeater/OddEvenItem.java
+++ b/wicket-core/src/main/java/org/apache/wicket/markup/repeater/OddEvenItem.java
@@ -18,6 +18,7 @@ package org.apache.wicket.markup.repeater;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.model.IModel;
+import org.apache.wicket.settings.ICssSettings;
/**
* Item that sets class="even" or class="odd" attributes based on its index
@@ -31,9 +32,6 @@ public class OddEvenItem<T> extends Item<T>
{
private static final long serialVersionUID = 1L;
- private static final String CLASS_EVEN = "even";
- private static final String CLASS_ODD = "odd";
-
/**
* Constructor
*
@@ -53,7 +51,9 @@ public class OddEvenItem<T> extends Item<T>
protected void onComponentTag(ComponentTag tag)
{
super.onComponentTag(tag);
- tag.put("class", (getIndex() % 2 == 0) ? CLASS_EVEN : CLASS_ODD);
+
+ ICssSettings cssSettings = getApplication().getCssSettings();
+ tag.put("class", (getIndex() % 2 == 0) ? cssSettings.getEvenItemCssClass() : cssSettings.getOddItemCssClass());
}
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-core/src/main/java/org/apache/wicket/settings/ICssSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/ICssSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/ICssSettings.java
new file mode 100644
index 0000000..89f0f9f
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/ICssSettings.java
@@ -0,0 +1,76 @@
+/*
+ * 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.settings;
+
+import org.apache.wicket.feedback.FeedbackMessage;
+
+/**
+ * Provides means to change the default CSS classes and styles used
+ * by the components in Wicket distribution.
+ */
+public interface ICssSettings
+{
+ /**
+ *
+ * @return
+ */
+ String getSortOrderDownCssClass();
+
+ void setSortOrderDownCssClass(String cssClassName);
+
+ String getSortOrderUpCssClass();
+
+ void setSortOrderUpCssClass(String cssClassName);
+
+ String getSortOrderNoneCssClass();
+
+ void setSortOrderNoneCssClass(String cssClassName);
+
+ String getFeedbackMessageCssClass(FeedbackMessage message);
+
+ void setRequiredCssClass(String cssClassName);
+
+ String getRequiredCssClass();
+
+ void setInvalidCssClass(String cssClassName);
+
+ String getInvalidCssClass();
+
+ void setDisabledCssClass(String cssClassName);
+
+ String getDisabledCssClass();
+
+ void setOddItemCssClass(String cssClassName);
+
+ String getOddItemCssClass();
+
+ void setEvenItemCssClass(String cssClassName);
+
+ String getEvenItemCssClass();
+
+ void setTabbedPanelSelectedCssClass(String cssClassName);
+
+ String getTabbedPanelSelectedCssClass();
+
+ void setTabbedPanelLastCssClass(String cssClassName);
+
+ String getTabbedPanelLastCssClass();
+
+ void setTabbedPanelTabContainerCssClass(String cssClassName);
+
+ String getTabbedPanelTabContainerCssClass();
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-core/src/main/java/org/apache/wicket/settings/def/CssSettings.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/settings/def/CssSettings.java b/wicket-core/src/main/java/org/apache/wicket/settings/def/CssSettings.java
new file mode 100644
index 0000000..a92a8c5
--- /dev/null
+++ b/wicket-core/src/main/java/org/apache/wicket/settings/def/CssSettings.java
@@ -0,0 +1,186 @@
+/*
+ * 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.settings.def;
+
+import org.apache.wicket.feedback.FeedbackMessage;
+import org.apache.wicket.settings.ICssSettings;
+
+/**
+ *
+ */
+public class CssSettings implements ICssSettings
+{
+ private String sortOrderDownCssClass = "wicket_orderDown";
+
+ private String sortOrderUpCssClass = "wicket_orderUp";
+
+ private String sortOrderNoneCssClass = "wicket_orderNone";
+
+ private String requiredCssClass = "required";
+
+ private String invalidCssClass = "error";
+
+ private String disabledCssClass = "disabled";
+
+ private String oddItemCssClass = "odd";
+
+ private String evenItemCssClass = "even";
+
+ private String tabbedPanelSelectedCssClass = "selected";
+
+ private String tabbedPanelLastCssClass = "last";
+
+ private String tabbedPanelTabContainerCssClass = "tab-row";
+
+ @Override
+ public String getSortOrderDownCssClass()
+ {
+ return sortOrderDownCssClass;
+ }
+
+ @Override
+ public void setSortOrderDownCssClass(String cssClassName)
+ {
+ this.sortOrderDownCssClass = cssClassName;
+ }
+
+ @Override
+ public String getSortOrderUpCssClass()
+ {
+ return sortOrderUpCssClass;
+ }
+
+ @Override
+ public void setSortOrderUpCssClass(String cssClassName)
+ {
+ this.sortOrderUpCssClass = cssClassName;
+ }
+
+ @Override
+ public String getSortOrderNoneCssClass()
+ {
+ return sortOrderNoneCssClass;
+ }
+
+ @Override
+ public void setSortOrderNoneCssClass(String cssClassName)
+ {
+ this.sortOrderNoneCssClass = cssClassName;
+ }
+
+ @Override
+ public String getFeedbackMessageCssClass(FeedbackMessage message)
+ {
+ return "feedbackPanel" + message.getLevelAsString();
+ }
+
+ @Override
+ public void setRequiredCssClass(String cssClassName)
+ {
+ this.requiredCssClass = cssClassName;
+ }
+
+ @Override
+ public String getRequiredCssClass()
+ {
+ return requiredCssClass;
+ }
+
+ @Override
+ public void setInvalidCssClass(String cssClassName)
+ {
+ this.invalidCssClass = cssClassName;
+ }
+
+ @Override
+ public String getInvalidCssClass()
+ {
+ return invalidCssClass;
+ }
+
+ @Override
+ public void setDisabledCssClass(String cssClassName)
+ {
+ this.disabledCssClass = cssClassName;
+ }
+
+ @Override
+ public String getDisabledCssClass()
+ {
+ return disabledCssClass;
+ }
+
+ @Override
+ public void setOddItemCssClass(String cssClassName)
+ {
+ this.oddItemCssClass = cssClassName;
+ }
+
+ @Override
+ public String getOddItemCssClass()
+ {
+ return oddItemCssClass;
+ }
+
+ @Override
+ public void setEvenItemCssClass(String cssClassName)
+ {
+ this.evenItemCssClass = cssClassName;
+ }
+
+ @Override
+ public String getEvenItemCssClass()
+ {
+ return evenItemCssClass;
+ }
+
+ @Override
+ public void setTabbedPanelSelectedCssClass(String cssClassName)
+ {
+ this.tabbedPanelSelectedCssClass = cssClassName;
+ }
+
+ @Override
+ public String getTabbedPanelSelectedCssClass()
+ {
+ return tabbedPanelSelectedCssClass;
+ }
+
+ @Override
+ public void setTabbedPanelLastCssClass(String cssClassName)
+ {
+ this.tabbedPanelLastCssClass = cssClassName;
+ }
+
+ @Override
+ public String getTabbedPanelLastCssClass()
+ {
+ return tabbedPanelLastCssClass;
+ }
+
+ @Override
+ public void setTabbedPanelTabContainerCssClass(String cssClassName)
+ {
+ this.tabbedPanelTabContainerCssClass = cssClassName;
+ }
+
+ @Override
+ public String getTabbedPanelTabContainerCssClass()
+ {
+ return tabbedPanelTabContainerCssClass;
+ }
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java
index 7b2f9b2..7355b23 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByBorder.java
@@ -49,26 +49,9 @@ public abstract class AjaxFallbackOrderByBorder<S> extends Border
public AjaxFallbackOrderByBorder(final String id, final S sortProperty,
final ISortStateLocator<S> stateLocator)
{
- this(id, sortProperty, stateLocator, new AjaxFallbackOrderByLink.DefaultCssProvider<S>(),
- null);
+ this(id, sortProperty, stateLocator, null);
}
-
- /**
- * Constructor
- *
- * @param id
- * @param sortProperty
- * @param stateLocator
- * @param cssProvider
- */
- public AjaxFallbackOrderByBorder(final String id, final S sortProperty,
- final ISortStateLocator<S> stateLocator, final AjaxFallbackOrderByLink.ICssProvider<S> cssProvider)
- {
- this(id, sortProperty, stateLocator, cssProvider, null);
- }
-
-
/**
* Constructor
*
@@ -80,27 +63,9 @@ public abstract class AjaxFallbackOrderByBorder<S> extends Border
public AjaxFallbackOrderByBorder(final String id, final S sortProperty,
final ISortStateLocator<S> stateLocator, final IAjaxCallListener ajaxCallListener)
{
- this(id, sortProperty, stateLocator, new AjaxFallbackOrderByLink.DefaultCssProvider<S>(),
- ajaxCallListener);
- }
-
-
- /**
- * Constructor
- *
- * @param id
- * @param sortProperty
- * @param stateLocator
- * @param cssProvider
- * @param ajaxCallListener
- */
- public AjaxFallbackOrderByBorder(final String id, final S sortProperty,
- final ISortStateLocator<S> stateLocator,
- final AjaxFallbackOrderByLink.ICssProvider<S> cssProvider, final IAjaxCallListener ajaxCallListener)
- {
super(id);
AjaxFallbackOrderByLink<S> link = new AjaxFallbackOrderByLink<S>("orderByLink", sortProperty,
- stateLocator, cssProvider, ajaxCallListener)
+ stateLocator, ajaxCallListener)
{
private static final long serialVersionUID = 1L;
@@ -119,7 +84,6 @@ public abstract class AjaxFallbackOrderByBorder<S> extends Border
}
};
addToBorder(link);
- add(new AjaxFallbackOrderByLink.CssModifier<>(link, cssProvider));
link.add(getBodyContainer());
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByLink.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByLink.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByLink.java
index 6d58ceb..8f8a02a 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByLink.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/ajax/markup/html/repeater/data/sort/AjaxFallbackOrderByLink.java
@@ -52,25 +52,11 @@ public abstract class AjaxFallbackOrderByLink<S> extends OrderByLink<S> implemen
* @param id
* @param sortProperty
* @param stateLocator
- * @param cssProvider
- */
- public AjaxFallbackOrderByLink(final String id, final S sortProperty,
- final ISortStateLocator<S> stateLocator, final ICssProvider<S> cssProvider)
- {
- this(id, sortProperty, stateLocator, cssProvider, null);
- }
-
- /**
- * Constructor
- *
- * @param id
- * @param sortProperty
- * @param stateLocator
*/
public AjaxFallbackOrderByLink(final String id, final S sortProperty,
final ISortStateLocator<S> stateLocator)
{
- this(id, sortProperty, stateLocator, new DefaultCssProvider<S>(), null);
+ this(id, sortProperty, stateLocator, null);
}
/**
@@ -84,23 +70,7 @@ public abstract class AjaxFallbackOrderByLink<S> extends OrderByLink<S> implemen
public AjaxFallbackOrderByLink(final String id, final S sortProperty,
final ISortStateLocator<S> stateLocator, final IAjaxCallListener ajaxCallListener)
{
- this(id, sortProperty, stateLocator, new DefaultCssProvider<S>(), ajaxCallListener);
- }
-
- /**
- * Constructor
- *
- * @param id
- * @param sortProperty
- * @param stateLocator
- * @param cssProvider
- * @param ajaxCallListener
- */
- public AjaxFallbackOrderByLink(final String id, final S sortProperty,
- final ISortStateLocator<S> stateLocator, final ICssProvider<S> cssProvider,
- final IAjaxCallListener ajaxCallListener)
- {
- super(id, sortProperty, stateLocator, cssProvider);
+ super(id, sortProperty, stateLocator);
this.ajaxCallListener = ajaxCallListener;
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByBorder.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByBorder.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByBorder.java
index 0b2f5da..291221b 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByBorder.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByBorder.java
@@ -39,25 +39,21 @@ public class OrderByBorder<S> extends Border
/**
* @param id
* see
- * {@link OrderByLink#OrderByLink(java.lang.String, java.lang.Object, org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator, org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByLink.ICssProvider) }
+ * {@link OrderByLink#OrderByLink(java.lang.String, java.lang.Object, org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator) }
* @param property
* see
- * {@link OrderByLink#OrderByLink(java.lang.String, java.lang.Object, org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator, org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByLink.ICssProvider) }
+ * {@link OrderByLink#OrderByLink(java.lang.String, java.lang.Object, org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator) }
* @param stateLocator
* see
- * {@link OrderByLink#OrderByLink(java.lang.String, java.lang.Object, org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator, org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByLink.ICssProvider) }
- * @param cssProvider
- * see
- * {@link OrderByLink#OrderByLink(java.lang.String, java.lang.Object, org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator, org.apache.wicket.extensions.markup.html.repeater.data.sort.OrderByLink.ICssProvider) }
+ * {@link OrderByLink#OrderByLink(java.lang.String, java.lang.Object, org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator) }
*/
public OrderByBorder(final String id, final S property,
- final ISortStateLocator<S> stateLocator, final OrderByLink.ICssProvider<S> cssProvider)
+ final ISortStateLocator<S> stateLocator)
{
super(id);
OrderByLink<S> link = newOrderByLink("orderByLink", property, stateLocator);
addToBorder(link);
- add(new OrderByLink.CssModifier<>(link, cssProvider));
link.add(getBodyContainer());
}
@@ -75,8 +71,7 @@ public class OrderByBorder<S> extends Border
protected OrderByLink<S> newOrderByLink(final String id, final S property,
final ISortStateLocator<S> stateLocator)
{
- return new OrderByLink<S>(id, property, stateLocator,
- new OrderByLink.VoidCssProvider<S>())
+ return new OrderByLink<S>(id, property, stateLocator)
{
private static final long serialVersionUID = 1L;
@@ -96,18 +91,4 @@ public class OrderByBorder<S> extends Border
// noop
}
- /**
- * @param id
- * see {@link OrderByLink#OrderByLink(java.lang.String, java.lang.Object, org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator) }
- * @param property
- * see {@link OrderByLink#OrderByLink(java.lang.String, java.lang.Object, org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator) }
- * @param stateLocator
- * see {@link OrderByLink#OrderByLink(java.lang.String, java.lang.Object, org.apache.wicket.extensions.markup.html.repeater.data.sort.ISortStateLocator) }
- */
- public OrderByBorder(final String id, final S property,
- final ISortStateLocator<S> stateLocator)
- {
- this(id, property, stateLocator, new OrderByLink.DefaultCssProvider<S>());
- }
-
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java
index ea6935d..e39e751 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/repeater/data/sort/OrderByLink.java
@@ -16,11 +16,9 @@
*/
package org.apache.wicket.extensions.markup.html.repeater.data.sort;
-import org.apache.wicket.Component;
-import org.apache.wicket.behavior.Behavior;
import org.apache.wicket.markup.ComponentTag;
import org.apache.wicket.markup.html.link.Link;
-import org.apache.wicket.util.io.IClusterable;
+import org.apache.wicket.settings.ICssSettings;
import org.apache.wicket.util.lang.Args;
import org.apache.wicket.util.string.Strings;
@@ -48,25 +46,6 @@ public class OrderByLink<S> extends Link<Void>
*
* @param id
* the component id of the link
- * @param sortProperty
- * the name of the sortable sortProperty this link represents. this value will be
- * used as parameter for sort state object methods. sort state object will be located
- * via the stateLocator argument.
- * @param stateLocator
- * locator used to locate sort state object that this will use to read/write state of
- * sorted properties
- */
- public OrderByLink(final String id, final S sortProperty,
- final ISortStateLocator<S> stateLocator)
- {
- this(id, sortProperty, stateLocator, new DefaultCssProvider<S>());
- }
-
- /**
- * Constructor.
- *
- * @param id
- * the component id of the link
* @param property
* the name of the sortable property this link represents. this value will be used as
* parameter for sort state object methods. sort state object will be located via the
@@ -74,23 +53,16 @@ public class OrderByLink<S> extends Link<Void>
* @param stateLocator
* locator used to locate sort state object that this will use to read/write state of
* sorted properties
- * @param cssProvider
- * CSS provider that will be used generate the value of class attribute for this link
- *
- * @see OrderByLink.ICssProvider
- *
+ *
*/
- public OrderByLink(final String id, final S property, final ISortStateLocator<S> stateLocator,
- final ICssProvider<S> cssProvider)
+ public OrderByLink(final String id, final S property, final ISortStateLocator<S> stateLocator)
{
super(id);
- Args.notNull(cssProvider, "cssProvider");
Args.notNull(property, "property");
this.property = property;
this.stateLocator = stateLocator;
- add(new CssModifier<>(this, cssProvider));
}
/**
@@ -155,162 +127,33 @@ public class OrderByLink<S> extends Link<Void>
}
}
- /**
- * Uses the specified ICssProvider to add css class attributes to the link.
- *
- * @param <S>
- * type of sort property
- * @author Igor Vaynberg ( ivaynberg )
- */
- public static class CssModifier<S> extends Behavior
+ @Override
+ public void onComponentTag(final ComponentTag tag)
{
- private static final long serialVersionUID = 1L;
- private final OrderByLink<S> link;
- private final ICssProvider<S> provider;
+ super.onComponentTag(tag);
- /**
- * @param link
- * the link this modifier is being added to
- * @param provider
- * implementation of ICssProvider
- */
- public CssModifier(final OrderByLink<S> link, final ICssProvider<S> provider)
- {
- this.link = link;
- this.provider = provider;
- }
+ final ISortState<S> sortState = stateLocator.getSortState();
- @Override
- public void onComponentTag(final Component component, final ComponentTag tag)
+ ICssSettings cssSettings = getApplication().getCssSettings();
+ SortOrder dir = sortState.getPropertySortOrder(property);
+ String cssClass;
+ if (dir == SortOrder.ASCENDING)
{
- super.onComponentTag(component, tag);
-
- final ISortState<S> sortState = link.stateLocator.getSortState();
- String cssClass = provider.getClassAttributeValue(sortState, link.property);
- if (!Strings.isEmpty(cssClass))
- {
- tag.append("class", cssClass, " ");
- }
-
+ cssClass = cssSettings.getSortOrderUpCssClass();
}
- }
-
-
- /**
- * Interface used to generate values of css class attribute for the anchor tag If the generated
- * value is null class attribute will not be added
- *
- * @author igor
- * @param <S>
- * the type of the sort property
- */
- public static interface ICssProvider<S> extends IClusterable
- {
- /**
- * @param state
- * current sort state
- * @param sortProperty
- * sort sortProperty represented by the {@link OrderByLink}
- * @return the value of the "class" attribute for the given sort state/sort sortProperty
- * combination
- */
- public String getClassAttributeValue(ISortState<S> state, S sortProperty);
- }
-
-
- /**
- * Easily constructible implementation of ICSSProvider
- *
- * @param <S>
- * the type of the sort property
- *
- * @author Igor Vaynberg (ivaynberg)
- */
- public static class CssProvider<S> implements ICssProvider<S>
- {
- private static final long serialVersionUID = 1L;
-
- private final String ascending;
-
- private final String descending;
-
- private final String none;
-
- /**
- * @param ascending
- * css class when sorting is ascending
- * @param descending
- * css class when sorting is descending
- * @param none
- * css class when not sorted
- */
- public CssProvider(final String ascending, final String descending, final String none)
+ else if (dir == SortOrder.DESCENDING)
{
- this.ascending = ascending;
- this.descending = descending;
- this.none = none;
+ cssClass = cssSettings.getSortOrderDownCssClass();
}
-
- @Override
- public String getClassAttributeValue(final ISortState<S> state, final S sortProperty)
+ else
{
- SortOrder dir = state.getPropertySortOrder(sortProperty);
-
- if (dir == SortOrder.ASCENDING)
- {
- return ascending;
- }
- else if (dir == SortOrder.DESCENDING)
- {
- return descending;
- }
- else
- {
- return none;
- }
+ cssClass = cssSettings.getSortOrderNoneCssClass();
}
- }
- /**
- * Convenience implementation of ICssProvider that always returns a null and so never adds a
- * class attribute
- *
- * @param <S>
- * the type of the sort property
- * @author Igor Vaynberg ( ivaynberg )
- */
- public static class VoidCssProvider<S> extends CssProvider<S>
- {
- private static final long serialVersionUID = 1L;
-
- /**
- * Construct.
- */
- public VoidCssProvider()
+ if (!Strings.isEmpty(cssClass))
{
- super("", "", "");
+ tag.append("class", cssClass, " ");
}
- }
- /**
- * Default implementation of ICssProvider
- *
- * @param <S>
- * the type of the sort property
- *
- * @author Igor Vaynberg ( ivaynberg )
- */
- public static class DefaultCssProvider<S> extends CssProvider<S>
- {
- private static final long serialVersionUID = 1L;
-
- /**
- * Construct.
- */
- public DefaultCssProvider()
- {
- super("wicket_orderUp", "wicket_orderDown", "wicket_orderNone");
- }
}
-
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java
----------------------------------------------------------------------
diff --git a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java
index 94cb909..cb40da8 100644
--- a/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java
+++ b/wicket-extensions/src/main/java/org/apache/wicket/extensions/markup/html/tabs/TabbedPanel.java
@@ -272,7 +272,7 @@ public class TabbedPanel<T extends ITab> extends Panel
*/
protected String getTabContainerCssClass()
{
- return "tab-row";
+ return getApplication().getCssSettings().getTabbedPanelTabContainerCssClass();
}
/**
@@ -281,7 +281,7 @@ public class TabbedPanel<T extends ITab> extends Panel
*/
protected String getLastTabCssClass()
{
- return "last";
+ return getApplication().getCssSettings().getTabbedPanelLastCssClass();
}
/**
@@ -290,7 +290,7 @@ public class TabbedPanel<T extends ITab> extends Panel
*/
protected String getSelectedTabCssClass()
{
- return "selected";
+ return getApplication().getCssSettings().getTabbedPanelSelectedCssClass();
}
/**
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-jmx/src/main/java/org/apache/wicket/jmx/CssSettings.java
----------------------------------------------------------------------
diff --git a/wicket-jmx/src/main/java/org/apache/wicket/jmx/CssSettings.java b/wicket-jmx/src/main/java/org/apache/wicket/jmx/CssSettings.java
new file mode 100644
index 0000000..4db5187
--- /dev/null
+++ b/wicket-jmx/src/main/java/org/apache/wicket/jmx/CssSettings.java
@@ -0,0 +1,170 @@
+/*
+ * 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.jmx;
+
+import org.apache.wicket.feedback.FeedbackMessage;
+
+/**
+ * Exposes Application CSS related functionality for JMX.
+ */
+public class CssSettings implements CssSettingsMBean
+{
+ private final org.apache.wicket.Application application;
+
+ public CssSettings(org.apache.wicket.Application application)
+ {
+ this.application = application;
+ }
+
+ @Override
+ public String getSortOrderDownCssClass()
+ {
+ return application.getCssSettings().getSortOrderDownCssClass();
+ }
+
+ @Override
+ public void setSortOrderDownCssClass(String cssClassName)
+ {
+ application.getCssSettings().setSortOrderDownCssClass(cssClassName);
+ }
+
+ @Override
+ public String getSortOrderUpCssClass()
+ {
+ return application.getCssSettings().getSortOrderUpCssClass();
+ }
+
+ @Override
+ public void setSortOrderUpCssClass(String cssClassName)
+ {
+ application.getCssSettings().setSortOrderUpCssClass(cssClassName);
+ }
+
+ @Override
+ public String getSortOrderNoneCssClass()
+ {
+ return application.getCssSettings().getSortOrderNoneCssClass();
+ }
+
+ @Override
+ public void setSortOrderNoneCssClass(String cssClassName)
+ {
+ application.getCssSettings().setSortOrderNoneCssClass(cssClassName);
+ }
+
+ @Override
+ public String getFeedbackMessageCssClass(FeedbackMessage message)
+ {
+ return application.getCssSettings().getFeedbackMessageCssClass(message);
+ }
+
+ @Override
+ public void setRequiredCssClass(String cssClassName)
+ {
+ application.getCssSettings().setRequiredCssClass(cssClassName);
+ }
+
+ @Override
+ public String getRequiredCssClass()
+ {
+ return application.getCssSettings().getRequiredCssClass();
+ }
+
+ @Override
+ public void setInvalidCssClass(String cssClassName)
+ {
+ application.getCssSettings().setInvalidCssClass(cssClassName);
+ }
+
+ @Override
+ public String getInvalidCssClass()
+ {
+ return application.getCssSettings().getInvalidCssClass();
+ }
+
+ @Override
+ public void setDisabledCssClass(String cssClassName)
+ {
+ application.getCssSettings().setDisabledCssClass(cssClassName);
+ }
+
+ @Override
+ public String getDisabledCssClass()
+ {
+ return application.getCssSettings().getDisabledCssClass();
+ }
+
+ @Override
+ public void setOddItemCssClass(String cssClassName)
+ {
+ application.getCssSettings().setOddItemCssClass(cssClassName);
+ }
+
+ @Override
+ public String getOddItemCssClass()
+ {
+ return application.getCssSettings().getOddItemCssClass();
+ }
+
+ @Override
+ public void setEvenItemCssClass(String cssClassName)
+ {
+ application.getCssSettings().setEvenItemCssClass(cssClassName);
+ }
+
+ @Override
+ public String getEvenItemCssClass()
+ {
+ return application.getCssSettings().getEvenItemCssClass();
+ }
+
+ @Override
+ public void setTabbedPanelSelectedCssClass(String cssClassName)
+ {
+ application.getCssSettings().setTabbedPanelSelectedCssClass(cssClassName);
+ }
+
+ @Override
+ public String getTabbedPanelSelectedCssClass()
+ {
+ return application.getCssSettings().getTabbedPanelSelectedCssClass();
+ }
+
+ @Override
+ public void setTabbedPanelLastCssClass(String cssClassName)
+ {
+ application.getCssSettings().setTabbedPanelLastCssClass(cssClassName);
+ }
+
+ @Override
+ public String getTabbedPanelLastCssClass()
+ {
+ return application.getCssSettings().getTabbedPanelLastCssClass();
+ }
+
+ @Override
+ public void setTabbedPanelTabContainerCssClass(String cssClassName)
+ {
+ application.getCssSettings().setTabbedPanelTabContainerCssClass(cssClassName);
+ }
+
+ @Override
+ public String getTabbedPanelTabContainerCssClass()
+ {
+ return application.getCssSettings().getTabbedPanelTabContainerCssClass();
+ }
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-jmx/src/main/java/org/apache/wicket/jmx/CssSettingsMBean.java
----------------------------------------------------------------------
diff --git a/wicket-jmx/src/main/java/org/apache/wicket/jmx/CssSettingsMBean.java b/wicket-jmx/src/main/java/org/apache/wicket/jmx/CssSettingsMBean.java
new file mode 100644
index 0000000..97292d6
--- /dev/null
+++ b/wicket-jmx/src/main/java/org/apache/wicket/jmx/CssSettingsMBean.java
@@ -0,0 +1,26 @@
+/*
+ * 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.jmx;
+
+import org.apache.wicket.settings.ICssSettings;
+
+/**
+ * Css settings
+ */
+public interface CssSettingsMBean extends ICssSettings
+{
+}
http://git-wip-us.apache.org/repos/asf/wicket/blob/2f87d0b4/wicket-jmx/src/main/java/org/apache/wicket/jmx/Initializer.java
----------------------------------------------------------------------
diff --git a/wicket-jmx/src/main/java/org/apache/wicket/jmx/Initializer.java b/wicket-jmx/src/main/java/org/apache/wicket/jmx/Initializer.java
index 77aaa2d..cb2ad8a 100644
--- a/wicket-jmx/src/main/java/org/apache/wicket/jmx/Initializer.java
+++ b/wicket-jmx/src/main/java/org/apache/wicket/jmx/Initializer.java
@@ -192,6 +192,8 @@ public class Initializer implements IInitializer
":type=Application,name=SessionSettings"));
register(new StoreSettings(application), new ObjectName(domain +
":type=Application,name=StoreSettings"));
+ register(new CssSettings(application), new ObjectName(domain +
+ ":type=Application,name=CssSettings"));
RequestLogger sessionsBean = new RequestLogger(application);
ObjectName sessionsBeanName = new ObjectName(domain + ":type=RequestLogger");