Author: christian.bauer(a)jboss.com
Date: 2008-01-21 07:25:45 -0500 (Mon, 21 Jan 2008)
New Revision: 7166
Added:
trunk/examples/wiki/view/includes/preferences/
trunk/examples/wiki/view/includes/preferences/editor.xhtml
trunk/examples/wiki/view/includes/preferences/editorAdaptiveTextInput.xhtml
trunk/examples/wiki/view/includes/preferences/editorNumberRange.xhtml
trunk/examples/wiki/view/includes/preferences/editorSelectOne.xhtml
Modified:
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/dao/TagDAO.java
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/FeedDAO.java
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/WikiFormattedTextHandler.java
Log:
Various bugfixes
Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/dao/TagDAO.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/dao/TagDAO.java 2008-01-21
12:04:34 UTC (rev 7165)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/dao/TagDAO.java 2008-01-21
12:25:45 UTC (rev 7166)
@@ -58,7 +58,7 @@
public List<WikiFile> findWikFiles(WikiDirectory startDir, WikiFile ignoreFile,
final String tag,
WikiNode.SortableProperty orderBy, boolean
orderAscending) {
- if (tag == null || tag.length() == 0) return Collections.emptyList();
+ if (tag == null || tag.length() == 0) return Collections.EMPTY_LIST;
StringBuilder queryString = new StringBuilder();
Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/FeedDAO.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/FeedDAO.java 2008-01-21
12:04:34 UTC (rev 7165)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/feeds/FeedDAO.java 2008-01-21
12:25:45 UTC (rev 7166)
@@ -21,6 +21,7 @@
import javax.persistence.Query;
import java.util.Date;
import java.util.List;
+import java.util.Iterator;
/**
* DAO for feeds.
@@ -224,11 +225,25 @@
public void purgeOldFeedEntries(Date olderThan) {
log.debug("cleaning up feed entries older than: " + olderThan);
// Clean up _all_ feed entries that are older than N days
- int result = restrictedEntityManager.createQuery("delete from FeedEntry fe
where fe.publishedDate < :oldestDate")
- .setParameter("oldestDate", olderThan).executeUpdate();
- log.debug("cleaned up " + result + " outdated feed
entries");
+ List<Feed> feedsWithOutdatedEntries =
+ restrictedEntityManager
+ .createQuery("select distinct f from FeedEntry fe, WikiFeed f
join f.feedEntries allFe " +
+ " where fe = allFe and fe.publishedDate <
:oldestDate")
+ .setParameter("oldestDate", olderThan)
+ .getResultList();
+ for (Feed feed : feedsWithOutdatedEntries) {
+ log.debug("feed has outdated entries: " + feed);
+ Iterator<FeedEntry> it = feed.getFeedEntries().iterator();
+ while (it.hasNext()) {
+ FeedEntry feedEntry = it.next();
+ if (feedEntry.getPublishedDate().compareTo(olderThan) < 0) {
+ log.debug("removing outdated feed entry: " + feedEntry);
+ it.remove(); // Unlink from feed
+ restrictedEntityManager.remove(feedEntry);
+ }
+ }
+ }
}
-
}
Modified:
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/WikiFormattedTextHandler.java
===================================================================
---
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/WikiFormattedTextHandler.java 2008-01-21
12:04:34 UTC (rev 7165)
+++
trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/ui/WikiFormattedTextHandler.java 2008-01-21
12:25:45 UTC (rev 7166)
@@ -156,7 +156,10 @@
log.debug("found macro: " + macro);
URL faceletURL = getPluginURL(macro.getName(), ctx);
- if (faceletURL == null) return null;
+ if (faceletURL == null) {
+ log.debug("macro has no plugin facelets file: " +
macro.getName());
+ return null;
+ }
log.debug("setting current macro in EVENT context before
including facelets file");
Contexts.getEventContext().set(UIWikiFormattedText.CURRENT_MACRO_EVENT_VARIABLE, macro);
Added: trunk/examples/wiki/view/includes/preferences/editor.xhtml
===================================================================
--- trunk/examples/wiki/view/includes/preferences/editor.xhtml
(rev 0)
+++ trunk/examples/wiki/view/includes/preferences/editor.xhtml 2008-01-21 12:25:45 UTC
(rev 7166)
@@ -0,0 +1,50 @@
+<s:fragment
+
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:f="http://java.sun.com/jsf/core"
+
xmlns:a="https://ajax4jsf.dev.java.net/ajax"
+
xmlns:s="http://jboss.com/products/seam/taglib">
+
+ <s:div rendered="#{v.preferenceProperty.fieldType.simpleName ==
'Boolean'}">
+ <h:selectBooleanCheckbox value="#{v.value}"/>
+ </s:div>
+
+ <s:div rendered="#{v.preferenceProperty.fieldType.simpleName ==
'String'}">
+ <h:inputText styleClass="ajaxSupport" value="#{v.value}"
size="25">
+ <a:support status="#{statusId}" event="onchange"
action="#{preferenceEditor.validate}"
oncomplete="onAjaxRequestComplete()"
+ reRender="preferenceValidationErrors"/>
+ </h:inputText>
+ </s:div>
+
+ <s:div rendered="#{v.preferenceProperty.fieldType.simpleName ==
'Long'}">
+ <h:inputText styleClass="ajaxSupport" value="#{v.value}"
size="5">
+ <f:converter converterId="javax.faces.Long"/>
+ <a:support status="#{statusId}" event="onchange"
action="#{preferenceEditor.validate}"
oncomplete="onAjaxRequestComplete()"
+ reRender="preferenceValidationErrors"/>
+ </h:inputText>
+ </s:div>
+
+ <s:div rendered="#{v.preferenceProperty.fieldType.simpleName ==
'Double'}">
+ <h:inputText styleClass="ajaxSupport" value="#{v.value}"
size="10">
+ <f:converter converterId="javax.faces.Double"/>
+ <a:support status="#{statusId}" event="onchange"
action="#{preferenceEditor.validate}"
oncomplete="onAjaxRequestComplete()"
+ reRender="preferenceValidationErrors"/>
+ </h:inputText>
+ </s:div>
+<!-- TODO: Duplicate identifiers...
+ <s:div rendered="#{v.preferenceProperty.fieldType.simpleName ==
'Date'}">
+ <h:inputText styleClass="ajaxSupport" id="dt"
value="#{v.value}">
+ <f:convertDateTime pattern="dd. MMM yyyy, HH:mm"
timeZone="#{preferences.get('Wiki').timeZone}"/>
+ <a:support status="#{statusId}" event="onchange"
action="#{preferenceEditor.validate}"
oncomplete="onAjaxRequestComplete()"
+ reRender="preferenceValidationErrors"/>
+ </h:inputText>
+ <s:selectDate for="dt" dateFormat="dd. MMM yyyy,
HH:mm">
+ <h:graphicImage
style="vertical-align:bottom;margin-bottom:2px;"
+
value="/themes/#{preferences.get('Wiki').themeName}/img/icon.calendar.gif"
+ width="16" height="16"/>
+ </s:selectDate>
+ </s:div>
+-->
+
+</s:fragment>
Added: trunk/examples/wiki/view/includes/preferences/editorAdaptiveTextInput.xhtml
===================================================================
--- trunk/examples/wiki/view/includes/preferences/editorAdaptiveTextInput.xhtml
(rev 0)
+++ trunk/examples/wiki/view/includes/preferences/editorAdaptiveTextInput.xhtml 2008-01-21
12:25:45 UTC (rev 7166)
@@ -0,0 +1,29 @@
+<s:fragment
+
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:f="http://java.sun.com/jsf/core"
+
xmlns:a="https://ajax4jsf.dev.java.net/ajax"
+
xmlns:rich="http://richfaces.org/rich"
+
xmlns:s="http://jboss.com/products/seam/taglib">
+
+ <s:fragment rendered="#{not
editorAdaptiveTextInput.isRenderTextArea(v.preferenceProperty)}">
+ <h:inputText styleClass="ajaxSupport"
+ value="#{v.value}"
+
size="#{editorAdaptiveTextInput.getSize(v.preferenceProperty)}"
+
maxlength="#{editorAdaptiveTextInput.getMaxLength(v.preferenceProperty)}">
+ <a:support status="#{statusId}" event="onchange"
action="#{preferenceEditor.validate}"
oncomplete="onAjaxRequestComplete()"
+ reRender="preferenceValidationErrors"/>
+ </h:inputText>
+ </s:fragment>
+ <s:fragment
rendered="#{editorAdaptiveTextInput.isRenderTextArea(v.preferenceProperty)}">
+ <h:inputTextarea value="#{v.value}"
+
cols="#{editorAdaptiveTextInput.getTextAreaCols(v.preferenceProperty)}"
+
rows="#{editorAdaptiveTextInput.getTextAreaRows(v.preferenceProperty)}"
+ style="margin:5px;">
+ <a:support status="#{statusId}" event="onchange"
action="#{preferenceEditor.validate}"
+ reRender="preferenceValidationErrors"/>
+ </h:inputTextarea>
+ </s:fragment>
+
+</s:fragment>
\ No newline at end of file
Added: trunk/examples/wiki/view/includes/preferences/editorNumberRange.xhtml
===================================================================
--- trunk/examples/wiki/view/includes/preferences/editorNumberRange.xhtml
(rev 0)
+++ trunk/examples/wiki/view/includes/preferences/editorNumberRange.xhtml 2008-01-21
12:25:45 UTC (rev 7166)
@@ -0,0 +1,17 @@
+<s:fragment
+
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:f="http://java.sun.com/jsf/core"
+
xmlns:a="https://ajax4jsf.dev.java.net/ajax"
+
xmlns:rich="http://richfaces.org/rich"
+
xmlns:s="http://jboss.com/products/seam/taglib">
+
+ <rich:inputNumberSlider
+ value="#{v.value}" converter="javax.faces.Long"
+ enableManualInput="false"
+ minValue="#{editorNumberRange.getRangeMin(v.preferenceProperty)}"
+
maxValue="#{editorNumberRange.getRangeMax(v.preferenceProperty)}">
+ </rich:inputNumberSlider>
+
+</s:fragment>
\ No newline at end of file
Added: trunk/examples/wiki/view/includes/preferences/editorSelectOne.xhtml
===================================================================
--- trunk/examples/wiki/view/includes/preferences/editorSelectOne.xhtml
(rev 0)
+++ trunk/examples/wiki/view/includes/preferences/editorSelectOne.xhtml 2008-01-21
12:25:45 UTC (rev 7166)
@@ -0,0 +1,18 @@
+<s:fragment
+
xmlns="http://www.w3.org/1999/xhtml"
+
xmlns:ui="http://java.sun.com/jsf/facelets"
+
xmlns:h="http://java.sun.com/jsf/html"
+
xmlns:f="http://java.sun.com/jsf/core"
+
xmlns:a="https://ajax4jsf.dev.java.net/ajax"
+
xmlns:s="http://jboss.com/products/seam/taglib">
+
+ <h:selectOneMenu value="#{v.value}" tabindex="1">
+ <s:selectItems
value="#{editorSelectOne.getAllValues(v.preferenceProperty)}"
+ var="templateValue"
+ label="#{templateValue}"
+
noSelectionLabel="#{editorSelectOne.isNullable(v.preferenceProperty)
+ ?
messages['lacewiki.preferences.editor.SelectNone']
+ : null}"/>
+ </h:selectOneMenu>
+
+</s:fragment>
\ No newline at end of file