You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by da...@apache.org on 2015/09/03 14:31:57 UTC

[06/87] [abbrv] [partial] isis git commit: ISIS-1194: moving the wicket submodules to be direct children of core; removing the isis-viewer-wicket parent pom.

http://git-wip-us.apache.org/repos/asf/isis/blob/99094b7e/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/DateTimeConfig.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/DateTimeConfig.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/DateTimeConfig.java
deleted file mode 100644
index 731d01d..0000000
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/DateTimeConfig.java
+++ /dev/null
@@ -1,372 +0,0 @@
-/*
- *  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.isis.viewer.wicket.ui.components.scalars.datepicker;
-
-import de.agilecoders.wicket.jquery.AbstractConfig;
-import de.agilecoders.wicket.jquery.IKey;
-
-import java.io.IOException;
-import com.fasterxml.jackson.core.JsonGenerator;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializerProvider;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import org.apache.wicket.util.lang.Args;
-import org.apache.wicket.util.string.Strings;
-import org.joda.time.DateTime;
-import org.joda.time.format.DateTimeFormat;
-import org.joda.time.format.DateTimeFormatter;
-
-/**
- * Configuration holder for all {@link org.apache.isis.viewer.wicket.ui.components.scalars.datepicker.TextFieldWithDatePicker} configurations.
- * Provides settings for <a href="https://github.com/Eonasdan/bootstrap-datetimepicker">Bootstrap Datetime picker</a>
- * JavaScript widget
- */
-public class DateTimeConfig extends AbstractConfig {
-    /**
-     * The earliest date that may be selected; all earlier dates will be disabled.
-     */
-    private static final IKey<String> StartDate = newKey("startDate", null);
-
-    /**
-     * The latest date that may be selected; all later dates will be disabled.
-     */
-    private static final IKey<String> EndDate = newKey("endDate", null);
-
-    /**
-     * The view that the datepicker should show when it is opened. Accepts values of
-     * 0 or 'month' for month view (the default); 1 or 'year' for the 12-month overview,
-     * and 2 or 'decade' for the 10-year overview. Useful for date-of-birth datepickers.
-     */
-    private static final IKey<String> _ViewMode = newKey("viewMode", ViewMode.days.name());
-
-    /**
-     * If true, displays a "Today" button at the bottom of the datepicker to select
-     * the current date. If true, the "Today" button will only move the current date
-     * into view;
-     */
-    private static final IKey<TodayButton> ShowTodayButton = newKey("todayBtn", TodayButton.FALSE);
-
-    /**
-     * Whether or not to allow date navigation by arrow keys.
-     */
-    private static final IKey<Boolean> KeyboardNavigation = newKey("keyboardNavigation", true);
-
-    /**
-     * show the date and time picker side by side
-     */
-    private static final IKey<Boolean> SideBySide = newKey("sideBySide", false);
-
-
-    /**
-     * The two-letter code of the language to use for month and day names.
-     * These will also be used as the input's value (and subsequently sent to the
-     * server in the case of form submissions). Currently ships with English ('en');
-     * German ('de'), Brazilian ('br'), and Spanish ('es') translations, but others
-     * can be added (see I18N below). If an unknown language code is given, English
-     * will be used.
-     */
-    private static final IKey<String> Language = newKey("language", "en");
-
-    /**
-     * The date format, combination of d, dd, m, mm, M, MM, yy, yyyy.
-     */
-    private static final IKey<String> Format = newKey("format", null);
-
-    /**
-     * Day of the week start. 0 (Sunday) to 6 (Saturday)
-     */
-    private static final IKey<Integer> WeekStart = newKey("weekStart", 0);
-
-    /**
-     * If true, highlights the current date.
-     */
-    private static final IKey<Boolean> HighlightToday = newKey("todayHighlight", false);
-
-    /**
-     * Whether or not to close the datepicker immediately when a date is selected.
-     */
-    private static final IKey<Boolean> AutoClose = newKey("autoclose", false);
-
-    /**
-     * Whether or not to force parsing of the input value when the picker is closed.
-     * That is, when an invalid date is left in the input field by the user, the picker
-     * will forcibly parse that value, and set the input's value to the new, valid date,
-     * conforming to the given format.
-     */
-    private static final IKey<Boolean> ForceParse = newKey("forceParse", true);
-
-    /**
-     * Whether or not to show the clear button.
-     */
-    private static final IKey<Boolean> ClearButton = newKey("clearBtn", false);
-
-    /**
-     * Whether or not to show week numbers to the left of week rows.
-     */
-    private static final IKey<Boolean> CalendarWeeks = newKey("calendarWeeks", false);
-
-    /**
-     * holds all week days in a specific sort order.
-     */
-    public enum Day {
-        Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
-    }
-
-    /**
-     * holds all view options.
-     */
-    public enum ViewMode {
-        months, years, days
-    }
-
-    /**
-     * Construct.
-     */
-    public DateTimeConfig() {
-        super();
-    }
-
-    /**
-     * @return the date format as string
-     */
-    public String getFormat() {
-        return getString(Format);
-    }
-
-    /**
-     * @return the language to use
-     */
-    public String getLanguage() {
-        return getString(Language);
-    }
-
-    /**
-     * @return true if default language should be used.
-     */
-    public boolean isDefaultLanguageSet() {
-        return Language.isDefaultValue(getLanguage());
-    }
-
-    /**
-     * The earliest date that may be selected; all earlier dates will be disabled.
-     *
-     * @param value the earliest start date
-     * @return this instance for chaining
-     */
-    public DateTimeConfig withStartDate(final DateTime value) {
-        String format = getFormat();
-        String startDate;
-        if (Strings.isEmpty(format)) {
-            startDate = value.toString();
-        } else {
-            DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(format);
-            startDate = dateTimeFormatter.print(value);
-        }
-        put(StartDate, startDate);
-        return this;
-    }
-
-    /**
-     * The latest date that may be selected; all later dates will be disabled.
-     *
-     * @param value the latest end date
-     * @return this instance for chaining
-     */
-    public DateTimeConfig withEndDate(final DateTime value) {
-        Args.notNull(value, "value");
-        String format = getFormat();
-        String endDate;
-        if (Strings.isEmpty(format)) {
-            endDate = value.toString();
-        } else {
-            DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern(format);
-            endDate = dateTimeFormatter.print(value);
-        }
-        put(EndDate, endDate);
-        return this;
-    }
-
-    /**
-     * The two-letter code of the language to use for month and day names.
-     * These will also be used as the input's value (and subsequently sent to the
-     * server in the case of form submissions). Currently ships with English ('en'),
-     * German ('de'), Brazilian ('br'), and Spanish ('es') translations, but others
-     * can be added (see I18N below). If an unknown language code is given, English
-     * will be used.
-     *
-     * @param value two letter language code (optional 5 letter code like de_DE)
-     * @return this instance for chaining
-     */
-    public DateTimeConfig withLanguage(final String value) {
-        put(Language, value);
-        return this;
-    }
-
-    /**
-     * The default view to display when the picker is shown.
-     * Useful for date-of-birth datepicker.
-     *
-     * @param value the start view to use
-     * @return this instance for chaining
-     */
-    public DateTimeConfig withView(final ViewMode value) {
-        put(_ViewMode, value.name());
-        return this;
-    }
-
-    /**
-     * The date format (java style), combination of d, dd, m, mm, M, MM, yy, yyyy.
-     *
-     * @param value The date format value (java style)
-     * @return this instance for chaining
-     */
-    public DateTimeConfig withFormat(final String value) {
-        put(Format, value);
-        return this;
-    }
-
-    /**
-     * Day of the week start. 0 (Sunday) to 6 (Saturday)
-     *
-     * @param value the {@link Day} the week starts
-     * @return this instance for chaining
-     */
-    public DateTimeConfig withWeekStart(final Day value) {
-        put(WeekStart, value.ordinal());
-        return this;
-    }
-
-    /**
-     * Whether or not to allow date navigation by arrow keys.
-     *
-     * @param value true, if keyboard navigation is allowed
-     * @return this instance for chaining
-     */
-    public DateTimeConfig allowKeyboardNavigation(final boolean value) {
-        put(KeyboardNavigation, value);
-        return this;
-    }
-
-    public DateTimeConfig sideBySide(final boolean value) {
-        put(SideBySide, value);
-        return this;
-    }
-
-    /**
-     * If true, highlights the current date.
-     *
-     * @param value If true, highlights the current date.
-     * @return this instance for chaining
-     */
-    public DateTimeConfig highlightToday(final boolean value) {
-        put(HighlightToday, value);
-        return this;
-    }
-
-    /**
-     * If true, displays a "Today" button at the bottom of the datepicker to select
-     * the current date. If true, the "Today" button will only move the current date
-     * into view;
-     *
-     * @param value whether to show today button or not
-     * @return this instance for chaining
-     */
-    public DateTimeConfig showTodayButton(final TodayButton value) {
-        put(ShowTodayButton, value);
-        return this;
-    }
-
-    /**
-     * Whether or not to force parsing of the input value when the picker is closed.
-     * That is, when an invalid date is left in the input field by the user, the picker
-     * will forcibly parse that value, and set the input's value to the new, valid date,
-     * conforming to the given format.
-     *
-     * @param value Whether or not to force parsing of the input value when the picker is closed
-     * @return this instance for chaining
-     */
-    public DateTimeConfig forceParse(final boolean value) {
-        put(ForceParse, value);
-        return this;
-    }
-
-    /**
-     * @param value Whether or not to display a 'clear' button, which allows for clearing the input field.
-     * @return this instance for chaining
-     */
-    public DateTimeConfig clearButton(final boolean value) {
-        put(ClearButton, value);
-        return this;
-    }
-
-    /**
-     * @param value Whether or not to show week numbers to the left of week rows.
-     * @return this instance for chaining
-     */
-    public DateTimeConfig calendarWeeks(final boolean value) {
-        put(CalendarWeeks, value);
-        return this;
-    }
-
-    /**
-     * Whether or not to close the datepicker immediately when a date is selected.
-     *
-     * @param value true, if datepicker should close immediately when date is selected.
-     * @return this instance for chaining
-     */
-    public DateTimeConfig autoClose(final boolean value) {
-        put(AutoClose, value);
-        return this;
-    }
-
-    /**
-     * See <a href="http://bootstrap-datepicker.readthedocs.org/en/latest/options.html#todaybtn">docs</a>.
-     * Today button could be a boolean or string <em>"linked"</em>:
-     * <cite>If true or “linked”, displays a “Today” button at the bottom of the datepicker to select the
-     * current date. If true, the “Today” button will only move the current date into view; if “linked”,
-     * the current date will also be selected.</cite>
-     */
-    @JsonSerialize(using = TodayButtonSerializer.class)
-    public static enum TodayButton {
-        TRUE,
-        FALSE,
-        LINKED
-    }
-
-    /**
-     * Serializer for TodayButton
-     */
-    private static class TodayButtonSerializer extends JsonSerializer<TodayButton> {
-
-        @Override
-        public void serialize(TodayButton value, JsonGenerator jgen, SerializerProvider provider) throws IOException {
-            switch (value) {
-                case TRUE:
-                    jgen.writeBoolean(true);
-                    break;
-                case FALSE:
-                    jgen.writeBoolean(false);
-                    break;
-                case LINKED:
-                    jgen.writeString("linked");
-                    break;
-            }
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/99094b7e/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDatePicker.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDatePicker.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDatePicker.java
deleted file mode 100644
index 9af21ab..0000000
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDatePicker.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- *  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.isis.viewer.wicket.ui.components.scalars.datepicker;
-
-import de.agilecoders.wicket.core.util.Attributes;
-
-import java.util.Locale;
-import org.apache.wicket.markup.ComponentTag;
-import org.apache.wicket.markup.head.CssHeaderItem;
-import org.apache.wicket.markup.head.IHeaderResponse;
-import org.apache.wicket.markup.head.JavaScriptHeaderItem;
-import org.apache.wicket.markup.head.OnDomReadyHeaderItem;
-import org.apache.wicket.markup.html.form.TextField;
-import org.apache.wicket.model.IModel;
-import org.apache.wicket.request.resource.CssResourceReference;
-import org.apache.wicket.request.resource.JavaScriptResourceReference;
-import org.apache.wicket.util.convert.IConverter;
-import org.apache.isis.viewer.wicket.ui.components.scalars.DateConverter;
-
-import static de.agilecoders.wicket.jquery.JQuery.$;
-
-/**
- * A text input field that is used as a date picker.
- * It uses <a href="https://github.com/Eonasdan/bootstrap-datetimepicker">Bootstrap Datetime picker</a>
- * JavaScript widget
- *
- * @param <T> The type of the date/time
- */
-public class TextFieldWithDatePicker<T> extends TextField<T> implements IConverter<T> {
-
-    private static final long serialVersionUID = 1L;
-
-    protected final DateConverter<T> converter;
-
-    private final DateTimeConfig config;
-
-    public TextFieldWithDatePicker(String id, IModel<T> model, Class<T> type, DateConverter<T> converter) {
-        this(id, model, type, converter, new DateTimeConfig());
-    }
-
-    public TextFieldWithDatePicker(String id, IModel<T> model, Class<T> type, DateConverter<T> converter, DateTimeConfig config) {
-        super(id, model, type);
-
-        setOutputMarkupId(true);
-
-        this.converter = converter;
-        String datePickerPattern = getPattern(converter, getLocale());
-        // convert Java (SimpleDateFormat|DateTimeFormat) format to Moment.js format
-        datePickerPattern = datePickerPattern.replace('d', 'D');
-        datePickerPattern = datePickerPattern.replace('y', 'Y');
-        config.withFormat(datePickerPattern);
-        config.calendarWeeks(true);
-        if (datePickerPattern.contains("HH")) {
-            config.sideBySide(true);
-        }
-        this.config = config;
-    }
-
-    protected String getPattern(DateConverter<T> converter, Locale locale) {
-        return converter.getDatePickerPattern(locale);
-    }
-
-    @Override
-    public T convertToObject(String value, Locale locale) {
-        return converter.convertToObject(value, locale);
-    }
-
-    @Override
-    public String convertToString(T value, Locale locale) {
-        return converter.convertToString(value, locale);
-    }
-
-    @SuppressWarnings("unchecked")
-    @Override
-    public <C> IConverter<C> getConverter(Class<C> type) {
-        // we use isAssignableFrom rather than a simple == to handle
-        // the persistence of JDO/DataNucleus:
-        // if persisting a java.sql.Date, the object we are given is actually a
-        // org.datanucleus.store.types.simple.SqlDate (a subclass of java.sql.Date)
-        if (converter.getConvertableClass().isAssignableFrom(type)) {
-            return (IConverter<C>) this;
-        }
-        return super.getConverter(type);
-    }
-
-    @Override
-    protected void onComponentTag(ComponentTag tag) {
-        super.onComponentTag(tag);
-
-        checkComponentTag(tag, "input");
-        Attributes.set(tag, "type", "text");
-    }
-
-    @Override
-    public void renderHead(final IHeaderResponse response) {
-        super.renderHead(response);
-
-        response.render(CssHeaderItem.forReference(new CssResourceReference(TextFieldWithDatePicker.class, "css/bootstrap-datetimepicker.css")));
-
-        response.render(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(TextFieldWithDatePicker.class, "js/moment.js")));
-        response.render(JavaScriptHeaderItem.forReference(new JavaScriptResourceReference(TextFieldWithDatePicker.class, "js/bootstrap-datetimepicker.js")));
-
-        response.render(OnDomReadyHeaderItem.forScript(createScript(config)));
-    }
-
-    /**
-     * creates the initializer script.
-     *
-     * @return initializer script
-     */
-    private CharSequence createScript(final DateTimeConfig config) {
-        return $(this).chain("datetimepicker", config).get();
-    }
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/99094b7e/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java
----------------------------------------------------------------------
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java
deleted file mode 100644
index 12298f0..0000000
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/TextFieldWithDateTimePicker.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- *  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.isis.viewer.wicket.ui.components.scalars.datepicker;
-
-import java.util.Locale;
-import org.apache.wicket.model.IModel;
-import org.apache.isis.viewer.wicket.ui.components.scalars.DateConverter;
-
-
-public class TextFieldWithDateTimePicker<T> extends TextFieldWithDatePicker<T> {
-
-    private static final long serialVersionUID = 1L;
-
-    public TextFieldWithDateTimePicker(String id, IModel<T> model, Class<T> type, DateConverter<T> converter) {
-        super(id, model, type, converter);
-    }
-
-    protected String getPattern(DateConverter<T> converter, Locale locale) {
-        return converter.getDateTimePattern(locale);
-    }
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/99094b7e/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/css/bootstrap-datetimepicker.css
----------------------------------------------------------------------
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/css/bootstrap-datetimepicker.css b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/css/bootstrap-datetimepicker.css
deleted file mode 100644
index 590fca1..0000000
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/css/bootstrap-datetimepicker.css
+++ /dev/null
@@ -1,341 +0,0 @@
-/*!
- * Datetimepicker for Bootstrap 3
-//! version : 4.0.0-beta
- * https://github.com/Eonasdan/bootstrap-datetimepicker/
- */
-.bootstrap-datetimepicker-widget.dropdown-menu {
-  margin: 2px 0;
-  padding: 4px;
-  width: 19em;
-}
-@media (min-width: 768px) {
-  .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
-    width: 38em;
-  }
-}
-@media (min-width: 992px) {
-  .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
-    width: 38em;
-  }
-}
-@media (min-width: 1200px) {
-  .bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs {
-    width: 38em;
-  }
-}
-.bootstrap-datetimepicker-widget.dropdown-menu:before,
-.bootstrap-datetimepicker-widget.dropdown-menu:after {
-  content: '';
-  display: inline-block;
-  position: absolute;
-}
-.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before {
-  border-left: 7px solid transparent;
-  border-right: 7px solid transparent;
-  border-bottom: 7px solid #ccc;
-  border-bottom-color: rgba(0, 0, 0, 0.2);
-  top: -7px;
-  left: 7px;
-}
-.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after {
-  border-left: 6px solid transparent;
-  border-right: 6px solid transparent;
-  border-bottom: 6px solid white;
-  top: -6px;
-  left: 8px;
-}
-.bootstrap-datetimepicker-widget.dropdown-menu.top:before {
-  border-left: 7px solid transparent;
-  border-right: 7px solid transparent;
-  border-top: 7px solid #ccc;
-  border-top-color: rgba(0, 0, 0, 0.2);
-  bottom: -7px;
-  left: 6px;
-}
-.bootstrap-datetimepicker-widget.dropdown-menu.top:after {
-  border-left: 6px solid transparent;
-  border-right: 6px solid transparent;
-  border-top: 6px solid white;
-  bottom: -6px;
-  left: 7px;
-}
-.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before {
-  left: auto;
-  right: 6px;
-}
-.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after {
-  left: auto;
-  right: 7px;
-}
-.bootstrap-datetimepicker-widget .list-unstyled {
-  margin: 0;
-}
-.bootstrap-datetimepicker-widget a[data-action] {
-  padding: 6px 0;
-}
-.bootstrap-datetimepicker-widget a[data-action]:active {
-  box-shadow: none;
-}
-.bootstrap-datetimepicker-widget .timepicker-hour,
-.bootstrap-datetimepicker-widget .timepicker-minute,
-.bootstrap-datetimepicker-widget .timepicker-second {
-  width: 54px;
-  font-weight: bold;
-  font-size: 1.2em;
-  margin: 0;
-}
-.bootstrap-datetimepicker-widget button[data-action] {
-  padding: 6px;
-}
-.bootstrap-datetimepicker-widget .btn[data-action="incrementHours"]::after {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-  content: "Increment Hours";
-}
-.bootstrap-datetimepicker-widget .btn[data-action="incrementMinutes"]::after {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-  content: "Increment Minutes";
-}
-.bootstrap-datetimepicker-widget .btn[data-action="decrementHours"]::after {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-  content: "Decrement Hours";
-}
-.bootstrap-datetimepicker-widget .btn[data-action="decrementMinutes"]::after {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-  content: "Decrement Minutes";
-}
-.bootstrap-datetimepicker-widget .btn[data-action="showHours"]::after {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-  content: "Show Hours";
-}
-.bootstrap-datetimepicker-widget .btn[data-action="showMinutes"]::after {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-  content: "Show Minutes";
-}
-.bootstrap-datetimepicker-widget .btn[data-action="togglePeriod"]::after {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-  content: "Toggle AM/PM";
-}
-.bootstrap-datetimepicker-widget .picker-switch {
-  text-align: center;
-}
-.bootstrap-datetimepicker-widget .picker-switch::after {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-  content: "Toggle Date and Time Screens";
-}
-.bootstrap-datetimepicker-widget .picker-switch td {
-  padding: 0;
-  margin: 0;
-  height: auto;
-  width: auto;
-  line-height: inherit;
-}
-.bootstrap-datetimepicker-widget .picker-switch td span {
-  line-height: 2.5;
-  height: 2.5em;
-  width: 100%;
-}
-.bootstrap-datetimepicker-widget table {
-  width: 100%;
-  margin: 0;
-}
-.bootstrap-datetimepicker-widget td,
-.bootstrap-datetimepicker-widget th {
-  text-align: center;
-  border-radius: 4px;
-}
-.bootstrap-datetimepicker-widget th {
-  height: 20px;
-  line-height: 20px;
-  width: 20px;
-}
-.bootstrap-datetimepicker-widget th.picker-switch {
-  width: 145px;
-}
-.bootstrap-datetimepicker-widget th.disabled,
-.bootstrap-datetimepicker-widget th.disabled:hover {
-  background: none;
-  color: #777777;
-  cursor: not-allowed;
-}
-.bootstrap-datetimepicker-widget th.prev::after {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-  content: "Previous Month";
-}
-.bootstrap-datetimepicker-widget th.next::after {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-  content: "Next Month";
-}
-.bootstrap-datetimepicker-widget thead tr:first-child th {
-  cursor: pointer;
-}
-.bootstrap-datetimepicker-widget thead tr:first-child th:hover {
-  background: #eeeeee;
-}
-.bootstrap-datetimepicker-widget td {
-  height: 54px;
-  line-height: 54px;
-  width: 54px;
-}
-.bootstrap-datetimepicker-widget td.cw {
-  font-size: .8em;
-  height: 20px;
-  line-height: 20px;
-  color: #777777;
-}
-.bootstrap-datetimepicker-widget td.day {
-  height: 20px;
-  line-height: 20px;
-  width: 20px;
-}
-.bootstrap-datetimepicker-widget td.day:hover,
-.bootstrap-datetimepicker-widget td.hour:hover,
-.bootstrap-datetimepicker-widget td.minute:hover,
-.bootstrap-datetimepicker-widget td.second:hover {
-  background: #eeeeee;
-  cursor: pointer;
-}
-.bootstrap-datetimepicker-widget td.old,
-.bootstrap-datetimepicker-widget td.new {
-  color: #777777;
-}
-.bootstrap-datetimepicker-widget td.today {
-  position: relative;
-}
-.bootstrap-datetimepicker-widget td.today:before {
-  content: '';
-  display: inline-block;
-  border-left: 7px solid transparent;
-  border-bottom: 7px solid #428bca;
-  border-top-color: rgba(0, 0, 0, 0.2);
-  position: absolute;
-  bottom: 4px;
-  right: 4px;
-}
-.bootstrap-datetimepicker-widget td.active,
-.bootstrap-datetimepicker-widget td.active:hover {
-  background-color: #428bca;
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-.bootstrap-datetimepicker-widget td.active.today:before {
-  border-bottom-color: #fff;
-}
-.bootstrap-datetimepicker-widget td.disabled,
-.bootstrap-datetimepicker-widget td.disabled:hover {
-  background: none;
-  color: #777777;
-  cursor: not-allowed;
-}
-.bootstrap-datetimepicker-widget td span {
-  display: inline-block;
-  width: 54px;
-  height: 54px;
-  line-height: 54px;
-  margin: 2px 1.5px;
-  cursor: pointer;
-  border-radius: 4px;
-}
-.bootstrap-datetimepicker-widget td span:hover {
-  background: #eeeeee;
-}
-.bootstrap-datetimepicker-widget td span.active {
-  background-color: #428bca;
-  color: #ffffff;
-  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);
-}
-.bootstrap-datetimepicker-widget td span.old {
-  color: #777777;
-}
-.bootstrap-datetimepicker-widget td span.disabled,
-.bootstrap-datetimepicker-widget td span.disabled:hover {
-  background: none;
-  color: #777777;
-  cursor: not-allowed;
-}
-.bootstrap-datetimepicker-widget.usetwentyfour td.hour {
-  height: 27px;
-  line-height: 27px;
-}
-.input-group.date .input-group-addon {
-  cursor: pointer;
-}
-.sr-only {
-  position: absolute;
-  width: 1px;
-  height: 1px;
-  margin: -1px;
-  padding: 0;
-  overflow: hidden;
-  clip: rect(0, 0, 0, 0);
-  border: 0;
-}

http://git-wip-us.apache.org/repos/asf/isis/blob/99094b7e/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/css/bootstrap-datetimepicker.min.css
----------------------------------------------------------------------
diff --git a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/css/bootstrap-datetimepicker.min.css b/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/css/bootstrap-datetimepicker.min.css
deleted file mode 100644
index 13473f3..0000000
--- a/core/viewer-wicket/ui/src/main/java/org/apache/isis/viewer/wicket/ui/components/scalars/datepicker/css/bootstrap-datetimepicker.min.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*!
- * Datetimepicker for Bootstrap 3
-//! version : 4.0.0-beta
- * https://github.com/Eonasdan/bootstrap-datetimepicker/
- */.bootstrap-datetimepicker-widget.dropdown-menu{margin:2px 0;padding:4px;width:19em}@media (min-width:768px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}@media (min-width:992px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}@media (min-width:1200px){.bootstrap-datetimepicker-widget.dropdown-menu.timepicker-sbs{width:38em}}.bootstrap-datetimepicker-widget.dropdown-menu:before,.bootstrap-datetimepicker-widget.dropdown-menu:after{content:'';display:inline-block;position:absolute}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:before{border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:7px solid #ccc;border-bottom-color:rgba(0,0,0,.2);top:-7px;left:7px}.bootstrap-datetimepicker-widget.dropdown-menu.bottom:after{border-left:6px solid transparent;border-right:6px solid transparent;border-bottom:6px solid #fff;top:-6px;left:8px}.bootstrap-datetimepicker-widget.dropdown-menu.top:before{border-lef
 t:7px solid transparent;border-right:7px solid transparent;border-top:7px solid #ccc;border-top-color:rgba(0,0,0,.2);bottom:-7px;left:6px}.bootstrap-datetimepicker-widget.dropdown-menu.top:after{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #fff;bottom:-6px;left:7px}.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:before{left:auto;right:6px}.bootstrap-datetimepicker-widget.dropdown-menu.pull-right:after{left:auto;right:7px}.bootstrap-datetimepicker-widget .list-unstyled{margin:0}.bootstrap-datetimepicker-widget a[data-action]{padding:6px 0}.bootstrap-datetimepicker-widget a[data-action]:active{box-shadow:none}.bootstrap-datetimepicker-widget .timepicker-hour,.bootstrap-datetimepicker-widget .timepicker-minute,.bootstrap-datetimepicker-widget .timepicker-second{width:54px;font-weight:700;font-size:1.2em;margin:0}.bootstrap-datetimepicker-widget button[data-action]{padding:6px}.bootstrap-datetimepicker-widget .btn[data-action=increm
 entHours]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Increment Hours"}.bootstrap-datetimepicker-widget .btn[data-action=incrementMinutes]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Increment Minutes"}.bootstrap-datetimepicker-widget .btn[data-action=decrementHours]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Decrement Hours"}.bootstrap-datetimepicker-widget .btn[data-action=decrementMinutes]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Decrement Minutes"}.bootstrap-datetimepicker-widget .btn[data-action=showHours]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Show Hours"}.bootstrap-datetimepicker-widget .b
 tn[data-action=showMinutes]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Show Minutes"}.bootstrap-datetimepicker-widget .btn[data-action=togglePeriod]::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Toggle AM/PM"}.bootstrap-datetimepicker-widget .picker-switch{text-align:center}.bootstrap-datetimepicker-widget .picker-switch::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Toggle Date and Time Screens"}.bootstrap-datetimepicker-widget .picker-switch td{padding:0;margin:0;height:auto;width:auto;line-height:inherit}.bootstrap-datetimepicker-widget .picker-switch td span{line-height:2.5;height:2.5em;width:100%}.bootstrap-datetimepicker-widget table{width:100%;margin:0}.bootstrap-datetimepicker-widget td,.bootstrap-datetimepicker-widget th{text-align:center;border-radiu
 s:4px}.bootstrap-datetimepicker-widget th{height:20px;line-height:20px;width:20px}.bootstrap-datetimepicker-widget th.picker-switch{width:145px}.bootstrap-datetimepicker-widget th.disabled,.bootstrap-datetimepicker-widget th.disabled:hover{background:0 0;color:#777;cursor:not-allowed}.bootstrap-datetimepicker-widget th.prev::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Previous Month"}.bootstrap-datetimepicker-widget th.next::after{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0;content:"Next Month"}.bootstrap-datetimepicker-widget thead tr:first-child th{cursor:pointer}.bootstrap-datetimepicker-widget thead tr:first-child th:hover{background:#eee}.bootstrap-datetimepicker-widget td{height:54px;line-height:54px;width:54px}.bootstrap-datetimepicker-widget td.cw{font-size:.8em;height:20px;line-height:20px;color:#777}.bootstrap-datetimepicker-widget td.day
 {height:20px;line-height:20px;width:20px}.bootstrap-datetimepicker-widget td.day:hover,.bootstrap-datetimepicker-widget td.hour:hover,.bootstrap-datetimepicker-widget td.minute:hover,.bootstrap-datetimepicker-widget td.second:hover{background:#eee;cursor:pointer}.bootstrap-datetimepicker-widget td.old,.bootstrap-datetimepicker-widget td.new{color:#777}.bootstrap-datetimepicker-widget td.today{position:relative}.bootstrap-datetimepicker-widget td.today:before{content:'';display:inline-block;border-left:7px solid transparent;border-bottom:7px solid #428bca;border-top-color:rgba(0,0,0,.2);position:absolute;bottom:4px;right:4px}.bootstrap-datetimepicker-widget td.active,.bootstrap-datetimepicker-widget td.active:hover{background-color:#428bca;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.bootstrap-datetimepicker-widget td.active.today:before{border-bottom-color:#fff}.bootstrap-datetimepicker-widget td.disabled,.bootstrap-datetimepicker-widget td.disabled:hover{background:0 0;color:#7
 77;cursor:not-allowed}.bootstrap-datetimepicker-widget td span{display:inline-block;width:54px;height:54px;line-height:54px;margin:2px 1.5px;cursor:pointer;border-radius:4px}.bootstrap-datetimepicker-widget td span:hover{background:#eee}.bootstrap-datetimepicker-widget td span.active{background-color:#428bca;color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,.25)}.bootstrap-datetimepicker-widget td span.old{color:#777}.bootstrap-datetimepicker-widget td span.disabled,.bootstrap-datetimepicker-widget td span.disabled:hover{background:0 0;color:#777;cursor:not-allowed}.bootstrap-datetimepicker-widget.usetwentyfour td.hour{height:27px;line-height:27px}.input-group.date .input-group-addon{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}
\ No newline at end of file