Skip to content

Commit

Permalink
Addresses #349 (comment)
Browse files Browse the repository at this point in the history
Set markup id to the Theme's CSS resource reference
  • Loading branch information
martin-g committed Nov 19, 2014
1 parent f71f2d8 commit 76c8d36
Show file tree
Hide file tree
Showing 16 changed files with 96 additions and 54 deletions.
Original file line number Diff line number Diff line change
@@ -1,38 +1,43 @@
package de.agilecoders.wicket.core.markup.html.themes.bootstrap;

import de.agilecoders.wicket.core.Bootstrap;
import de.agilecoders.wicket.core.settings.IBootstrapSettings;
import de.agilecoders.wicket.core.settings.Theme;
import org.apache.wicket.Application;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.request.resource.ResourceReference;

import java.util.ArrayList;
import java.util.List;

/**
* #### Description
*
* Bootstrap theme that uses the css resource reference from bootstrap settings.
*
* #### Caution
*
* There's a constructor which is deprecated and will be removed before 1.0 is released. Please
* use {@link de.agilecoders.wicket.core.markup.html.themes.bootstrap.BootstrapTheme#BootstrapTheme(de.agilecoders.wicket.core.settings.IBootstrapSettings)}
* instead.
*
* @author Michael Haitz <[email protected]>
*/
public class BootstrapTheme extends Theme {

/**
* Construct.
*
* @param settings the bootstrap settings
*/
public BootstrapTheme(final IBootstrapSettings settings) {
super("bootstrap", settings.getCssResourceReference());
}

/**
* Construct.
*/
@Deprecated
public BootstrapTheme() {
super("bootstrap", BootstrapCssReference.instance());
super("bootstrap");
}

@Override
public List<HeaderItem> getDependencies() {
List<HeaderItem> references = new ArrayList<>();
ResourceReference cssResourceReference;
if (Application.exists()) {
IBootstrapSettings settings = Bootstrap.getSettings();
cssResourceReference = settings.getCssResourceReference();
} else {
cssResourceReference = BootstrapCssReference.instance();
}
references.add(CssHeaderItem.forReference(cssResourceReference).setId(BOOTSTRAP_THEME_MARKUP_ID));
return references;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ public ActiveThemeProvider getActiveThemeProvider() {
public ThemeProvider getThemeProvider() {
ThemeProvider provider = themeProvider;

return provider != null ? provider : (themeProvider = new DefaultThemeProvider(this));
return provider != null ? provider : (themeProvider = new DefaultThemeProvider());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,19 +27,9 @@ public class DefaultThemeProvider implements ThemeProvider {
private final List<ITheme> themes = Generics2.newArrayList();
private ITheme defaultTheme;

/**
* Construct.
*
* @param settings the bootstrap settings
*/
public DefaultThemeProvider(IBootstrapSettings settings) {
addDefaultTheme(new BootstrapTheme(settings));
}

/**
* Construct.
*/
@Deprecated
public DefaultThemeProvider() {
addDefaultTheme(new BootstrapTheme());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,13 @@
*/
public interface ITheme {

/**
* The markup id to use for the CSS resource reference.
* If the theme is changed in an Ajax response wicket-ajax.js will properly
* remove the old &lt;link&gt; and add the new one.
*/
String BOOTSTRAP_THEME_MARKUP_ID = "wb-theme";

/**
* @return The unique name of this theme.
*/
Expand Down
2 changes: 1 addition & 1 deletion bootstrap-samples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@

<properties>
<wicket.configuration>DEVELOPMENT</wicket.configuration>
<wicketstuff.version>7.0.0-M4</wicketstuff.version>
<wicketstuff.version>7.0.0-M3</wicketstuff.version>

<!-- use version newer than 16.0.1 to be able to deploy the samples
in a container with CDI enabled by default. For example JBoss WildFly-->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ public BootstrapThemeTheme() {

@Override
public List<HeaderItem> getDependencies() {
return Collections.<HeaderItem>singletonList(CssHeaderItem.forReference(BootstrapThemeThemeCssReference.instance()));
HeaderItem headerItem = CssHeaderItem.forReference(BootstrapThemeThemeCssReference.instance()).setId(BOOTSTRAP_THEME_MARKUP_ID);
return Collections.singletonList(headerItem);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ public Iterable<String> getCdnUrls() {

@Override
public List<HeaderItem> getDependencies() {
return Collections.<HeaderItem>singletonList(CssHeaderItem.forReference(reference));
return Collections.<HeaderItem>singletonList(CssHeaderItem.forReference(reference).setId(BOOTSTRAP_THEME_MARKUP_ID));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ public GoogleTheme() {

@Override
public List<HeaderItem> getDependencies() {
return Collections.<HeaderItem>singletonList(CssHeaderItem.forReference(GoogleCssReference.instance()));
HeaderItem headerItem = CssHeaderItem.forReference(GoogleCssReference.instance()).setId(BOOTSTRAP_THEME_MARKUP_ID);
return Collections.singletonList(headerItem);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ public MaterialDesignTheme() {

@Override
public List<HeaderItem> getDependencies() {
List<HeaderItem> references = new ArrayList<HeaderItem>();
references.add(CssHeaderItem.forReference(new MaterialDesignCssReference()));
List<HeaderItem> references = new ArrayList<>();
references.add(CssHeaderItem.forReference(new MaterialDesignCssReference()).setId(BOOTSTRAP_THEME_MARKUP_ID));
references.add(JavaScriptHeaderItem.forReference(new JQueryPluginResourceReference(MaterialDesignTheme.class, "js/ripples.js")));
references.add(JavaScriptHeaderItem.forReference(new JQueryPluginResourceReference(MaterialDesignTheme.class, "js/material.js")));
references.add(OnDomReadyHeaderItem.forScript("$.material.init()"));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
package de.agilecoders.wicket.themes.markup.html.metro;

import de.agilecoders.wicket.core.Bootstrap;
import de.agilecoders.wicket.core.markup.html.themes.bootstrap.BootstrapCssReference;
import org.apache.wicket.Application;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.request.resource.CssResourceReference;
import org.apache.wicket.request.resource.ResourceReference;

import java.util.Arrays;
import java.util.List;

/**
* A windows 8 inspired theme
Expand Down Expand Up @@ -31,4 +40,14 @@ private MetroCssReference() {
super(MetroCssReference.class, "css/metro.css");
}

}
@Override
public List<HeaderItem> getDependencies() {
ResourceReference cssResourceReference;
if (Application.exists()) {
cssResourceReference = Bootstrap.getSettings().getCssResourceReference();
} else {
cssResourceReference = BootstrapCssReference.instance();
}
return Arrays.<HeaderItem>asList(CssHeaderItem.forReference(cssResourceReference));
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package de.agilecoders.wicket.themes.markup.html.metro;

import de.agilecoders.wicket.core.markup.html.themes.bootstrap.BootstrapCssReference;
import de.agilecoders.wicket.core.settings.Theme;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.HeaderItem;
Expand Down Expand Up @@ -34,8 +33,7 @@ public MetroTheme() {
public List<HeaderItem> getDependencies() {
List<HeaderItem> references = new ArrayList<HeaderItem>();
references.addAll(super.getDependencies());
references.add(CssHeaderItem.forReference(BootstrapCssReference.instance()));
references.add(CssHeaderItem.forReference(MetroCssReference.instance()));
references.add(CssHeaderItem.forReference(MetroCssReference.instance()).setId(BOOTSTRAP_THEME_MARKUP_ID));
return references;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash

wget "https://raw.githubusercontent.com/idleberg/m8tro-bootstrap/master/dist/css/m8tro.min.css" -O css/metro.css

Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ private VegibitTheme() {

@Override
public List<HeaderItem> getDependencies() {
return Collections.<HeaderItem>singletonList(CssHeaderItem.forReference(reference));
return Collections.<HeaderItem>singletonList(CssHeaderItem.forReference(reference).setId(BOOTSTRAP_THEME_MARKUP_ID));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package de.agilecoders.wicket.themes.markup.html.wicket;

import de.agilecoders.wicket.core.markup.html.themes.bootstrap.BootstrapCssReference;
import de.agilecoders.wicket.core.settings.Theme;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.HeaderItem;
Expand All @@ -26,8 +25,7 @@ public WicketTheme() {
public List<HeaderItem> getDependencies() {
List<HeaderItem> references = new ArrayList<HeaderItem>();
references.addAll(super.getDependencies());
references.add(CssHeaderItem.forReference(BootstrapCssReference.instance()));
references.add(CssHeaderItem.forReference(WicketThemeCssResourceReference.INSTANCE));
references.add(CssHeaderItem.forReference(WicketThemeCssResourceReference.INSTANCE).setId(BOOTSTRAP_THEME_MARKUP_ID));
return references;
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,15 @@
package de.agilecoders.wicket.themes.markup.html.wicket;

import de.agilecoders.wicket.core.Bootstrap;
import de.agilecoders.wicket.core.markup.html.themes.bootstrap.BootstrapCssReference;
import org.apache.wicket.Application;
import org.apache.wicket.markup.head.CssHeaderItem;
import org.apache.wicket.markup.head.HeaderItem;
import org.apache.wicket.request.resource.CssResourceReference;
import org.apache.wicket.request.resource.ResourceReference;

import java.util.Arrays;
import java.util.List;

/**
* Wicket theme css resource reference
Expand All @@ -22,4 +31,14 @@ public WicketThemeCssResourceReference() {
super(WicketThemeCssResourceReference.class, "css/bootstrap.wicket.css");
}

}
@Override
public List<HeaderItem> getDependencies() {
ResourceReference cssResourceReference;
if (Application.exists()) {
cssResourceReference = Bootstrap.getSettings().getCssResourceReference();
} else {
cssResourceReference = BootstrapCssReference.instance();
}
return Arrays.<HeaderItem>asList(CssHeaderItem.forReference(cssResourceReference));
}
}
22 changes: 11 additions & 11 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -266,7 +266,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.5.1</version>
<version>${maven-compiler-plugin.version}</version>
<configuration>
<source>${maven.java.source}</source>
<target>${maven.java.target}</target>
Expand Down Expand Up @@ -398,16 +398,16 @@
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>Sonatype OSS snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>Sonatype OSS snapshots</id>
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>

</project>

0 comments on commit 76c8d36

Please sign in to comment.