[seam-commits] Seam SVN: r7390 - in trunk/examples/wiki: src/etc and 14 other directories.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Thu Feb 7 05:40:13 EST 2008


Author: christian.bauer at jboss.com
Date: 2008-02-07 05:40:12 -0500 (Thu, 07 Feb 2008)
New Revision: 7390

Removed:
   trunk/examples/wiki/src/etc/messages_en.properties
   trunk/examples/wiki/view/themes/inrelationto/mailtemplates/test.xhtml
Modified:
   trunk/examples/wiki/README.txt
   trunk/examples/wiki/src/etc/i18n/messages_en.properties
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/WikiIdentity.java
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/plugin/forum/ForumHome.java
   trunk/examples/wiki/src/main/org/jboss/seam/wiki/plugin/forum/TopicHome.java
   trunk/examples/wiki/src/test/org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml
   trunk/examples/wiki/view/includes/commentForm.xhtml
   trunk/examples/wiki/view/includes/wikiTextEditor.xhtml
   trunk/examples/wiki/view/plugins/forumReplies/replyForm.xhtml
   trunk/examples/wiki/view/plugins/forumTopics/topicForm.xhtml
   trunk/examples/wiki/view/themes/default/css/template.css
   trunk/examples/wiki/view/themes/default/template.xhtml
   trunk/examples/wiki/view/themes/inrelationto/css/inrelationto.css
   trunk/examples/wiki/view/themes/inrelationto/template.xhtml
   trunk/examples/wiki/view/themes/sfwkorg/css/sfwk.css
   trunk/examples/wiki/view/themes/sfwkorg/template.xhtml
Log:
Formatting toolbar for wiki text editor

Modified: trunk/examples/wiki/README.txt
===================================================================
--- trunk/examples/wiki/README.txt	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/README.txt	2008-02-07 10:40:12 UTC (rev 7390)
@@ -1,4 +1,4 @@
-This is not a regular "Seam example", its a standalone seam-gen project structure. The build.xml
+This is not a regular "Seam example", its a standalone project structure. The build.xml
 references the existing Seam libraries and thirdparty libs, however, to avoid duplication.
 
 RUNNING THE UNIT TESTS
@@ -30,7 +30,8 @@
 
 - Call 'ant deploy'
 
-- Start (if you haven't done so already) JBoss AS and access http://localhost:8080/wiki/
+- Start (if you haven't done so already) JBoss AS and access http://localhost:8080/wiki/ and use the
+  default login 'admin' with password 'admin'
 
 
 INSTALLATION WITH MYSQL (production profile)
@@ -63,9 +64,6 @@
 
 - Login as admin/admin and update the Lucene index in the 'Administration' screen
 
-NOTE: The lucene index directory is named "lacewikiIndex" and located in the current directory. This
-is the current directory from which you started the application server! If you want to change this setting,
-unpack the WAR and change the META-INF/persistence.xml configuration file.
-
-WARNING: Do not use this software in production! The database schema is not final and will change!
-No migration scripts for existing data will be provided until the software is production ready.
+NOTE: The Lucene index directory for full-text searching is named "lacewikiIndex" and located in the
+current directory. This is the current directory from which you started the application server! If you want
+to change this setting, unpack the WAR and change the META-INF/persistence.xml configuration file.

Modified: trunk/examples/wiki/src/etc/i18n/messages_en.properties
===================================================================
--- trunk/examples/wiki/src/etc/i18n/messages_en.properties	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/src/etc/i18n/messages_en.properties	2008-02-07 10:40:12 UTC (rev 7390)
@@ -218,7 +218,25 @@
 
 # Wiki Text Editor
 lacewiki.label.wikiTextEditor.CharactersLeft=chars left
-lacewiki.msg.wikiTextEditor.EditThisTextPreviewUpdatesAutomatically=Edit this text, the live preview updates if you stop typing for 3 seconds.
+lacewiki.msg.wikiTextEditor.EditThisTextPreviewUpdatesAutomatically=Click HELP for text formatting instructions. Then edit this text, this live preview updates if you stop typing for 3 seconds.
+lacewiki.msg.wikiTextEditor.FormatSelection=Format selected text...
+lacewiki.msg.wikiTextEditor.FormatInline=-------- Inline --------
+lacewiki.msg.wikiTextEditor.FormatMonospace=Monospace/Code
+lacewiki.msg.wikiTextEditor.FormatUnderline=Underline
+lacewiki.msg.wikiTextEditor.FormatEmphasis=Emphasis
+lacewiki.msg.wikiTextEditor.FormatStrikeout=Strikeout
+lacewiki.msg.wikiTextEditor.FormatSuperscript=Superscript
+lacewiki.msg.wikiTextEditor.FormatQuote=Quote
+lacewiki.msg.wikiTextEditor.FormatLink=Link
+lacewiki.msg.wikiTextEditor.FormatBlock=-------- Block ---------
+lacewiki.msg.wikiTextEditor.FormatCodeBlock=Code Block
+lacewiki.msg.wikiTextEditor.FormatQuoteBlock=Quote Block
+lacewiki.msg.wikiTextEditor.FormatUnorderedList=Unordered List Item
+lacewiki.msg.wikiTextEditor.FormatOrderedList=Ordered List Item
+lacewiki.msg.wikiTextEditor.FormatHeadline1=Headline 1
+lacewiki.msg.wikiTextEditor.FormatHeadline2=Headline 2
+lacewiki.msg.wikiTextEditor.FormatHeadline3=Headline 3
+lacewiki.msg.wikiTextEditor.FormatHeadline4=Headline 4
 
 # Document Display
 

Deleted: trunk/examples/wiki/src/etc/messages_en.properties
===================================================================
--- trunk/examples/wiki/src/etc/messages_en.properties	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/src/etc/messages_en.properties	2008-02-07 10:40:12 UTC (rev 7390)
@@ -1,694 +0,0 @@
-# TODO: Who uses these unicode arrows?
-up=\u2191
-down=\u2193
-left=\u2039
-right=\u203A
-
-validator.assertFalse=Validation failed
-validator.assertTrue=Validation failed
-validator.future=Must be a future date
-validator.length=Length must be between {min} and {max}
-validator.max=Must be less than or equal to {value}
-validator.min=Must be greater than or equal to {value}
-validator.notNull=May not be null
-validator.past=Must be a past date
-validator.pattern=Must match "{regex}"
-validator.range=Must be between {min} and {max}
-validator.size=Size must be between {min} and {max}
-validator.email=Must be a well-formed email address
-
-org.jboss.seam.loginFailed=Login failed, please try again.
-org.jboss.seam.loginSuccessful=Login successful, welcome #0.
-
-org.jboss.seam.TransactionFailed=Transaction failed.
-org.jboss.seam.NoConversation=The workspace ended, timed out or was processing another request.
-org.jboss.seam.IllegalNavigation=Illegal navigation
-org.jboss.seam.ProcessEnded=Process #0 already ended
-org.jboss.seam.ProcessNotFound=Process #0 not found
-org.jboss.seam.TaskEnded=Task #0 already ended
-org.jboss.seam.TaskNotFound=Task #0 not found
-org.jboss.seam.NotLoggedIn=Please log in first
-
-javax.faces.component.UIInput.CONVERSION=Value could not be converted to the expected type
-javax.faces.component.UIInput.REQUIRED=A value is required
-javax.faces.component.UIInput.UPDATE=An error occurred when processing your submitted information
-javax.faces.component.UISelectOne.INVALID=Value is not valid
-javax.faces.component.UISelectMany.INVALID=Value is not valid
-
-javax.faces.converter.BigDecimalConverter.DECIMAL=Value must be a number
-javax.faces.converter.BigDecimalConverter.DECIMAL_detail=Value must be a signed decimal number consisting of zero or more digits, optionally followed by a decimal point and fraction, eg. {1}
-javax.faces.converter.BigIntegerConverter.BIGINTEGER=Value must be a number
-javax.faces.converter.BigIntegerConverter.BIGINTEGER_detail=Value must be a signed integer number consisting of zero or more digits
-javax.faces.converter.BooleanConverter.BOOLEAN=Value must be true or false
-javax.faces.converter.BooleanConverter.BOOLEAN_detail=Value must be true or false (any value other than true will evaluate to false)
-javax.faces.converter.ByteConverter.BYTE=Value must be a number between 0 and 255
-javax.faces.converter.ByteConverter.BYTE_detail=Value must be a number between 0 and 255
-javax.faces.converter.CharacterConverter.CHARACTER=Value must be a character
-javax.faces.converter.CharacterConverter.CHARACTER_detail=Value must be a valid ASCII character
-javax.faces.converter.DateTimeConverter.DATE=Value must be a date
-javax.faces.converter.DateTimeConverter.DATE_detail=Value must be a date,  eg. {1}
-javax.faces.converter.DateTimeConverter.TIME=Value must be a time
-javax.faces.converter.DateTimeConverter.TIME_detail=Value must be a time,  eg. {1}
-javax.faces.converter.DateTimeConverter.DATETIME=Value must be a date and time
-javax.faces.converter.DateTimeConverter.DATETIME_detail=Value must be a date and time,  eg. {1}
-javax.faces.converter.DateTimeConverter.PATTERN_TYPE=A pattern or type attribute must be specified to convert the value
-javax.faces.converter.DoubleConverter.DOUBLE=Value must be a number
-javax.faces.converter.DoubleConverter.DOUBLE_detail=Value must be a number between 4.9E-324 and 1.7976931348623157E308
-javax.faces.converter.EnumConverter.ENUM=Value must be convertible to an enum
-javax.faces.converter.EnumConverter.ENUM_detail=Value must be convertible to an enum or from the enum that contains the constant {1}
-javax.faces.converter.EnumConverter.ENUM_NO_CLASS=Value must be convertible to an enum or from the enum, but no enum class provided
-javax.faces.converter.EnumConverter.ENUM_NO_CLASS_detail=Value must be convertible to an enum or from the enum, but no enum class provided
-javax.faces.converter.FloatConverter.FLOAT=Value must be a number
-javax.faces.converter.FloatConverter.FLOAT_detail=Value must be a number between 1.4E-45 and 3.4028235E38
-javax.faces.converter.IntegerConverter.INTEGER=Value must be a number
-javax.faces.converter.IntegerConverter.INTEGER_detail=Value must be a number between -2147483648 and 2147483647
-javax.faces.converter.LongConverter.LONG=Value must be a number
-javax.faces.converter.LongConverter.LONG_detail=Must be a number between -9223372036854775808 and 9223372036854775807
-javax.faces.converter.NumberConverter.CURRENCY=Value must be a currency amount
-javax.faces.converter.NumberConverter.CURRENCY_detail=Value must be a currency amount, eg. {1}
-javax.faces.converter.NumberConverter.PERCENT=Value must be a percentage amount
-javax.faces.converter.NumberConverter.PERCENT_detail=Value must be a percentage amount, eg. {1}
-javax.faces.converter.NumberConverter.NUMBER=Value must be a number
-javax.faces.converter.NumberConverter.NUMBER_detail=Value must be a number
-javax.faces.converter.NumberConverter.PATTERN=Value must be a number
-javax.faces.converter.NumberConverter.PATTERN_detail=Value must be a number
-javax.faces.converter.ShortConverter.SHORT=Value must be a number
-javax.faces.converter.ShortConverter.SHORT_detail=Value must be a number between -32768 and 32767
-
-javax.faces.validator.DoubleRangeValidator.MAXIMUM=Value must be less than or equal to {0}
-javax.faces.validator.DoubleRangeValidator.MINIMUM=Value must be greater than or equal to {0}
-javax.faces.validator.DoubleRangeValidator.NOT_IN_RANGE=Value must be between {0} and {1}
-javax.faces.validator.DoubleRangeValidator.TYPE=Value is not of the correct type
-javax.faces.validator.LengthValidator.MAXIMUM=Value is must be shorter than or equal to {0} characters
-javax.faces.validator.LengthValidator.MINIMUM=Value is must be longer than or equal to {0} characters
-javax.faces.validator.LongRangeValidator.MAXIMUM=Value must be less than or equal to {0}
-javax.faces.validator.LongRangeValidator.MINIMUM=Value must be greater than or equal to {0}
-javax.faces.validator.LongRangeValidator.NOT_IN_RANGE=Value must be between {0} and {1}
-javax.faces.validator.LongRangeValidator.TYPE=Value is not of the correct type
-
-javax.faces.validator.NOT_IN_RANGE=Value must be between {0} and {1}
-javax.faces.converter.STRING=Value could not be converted to a string
-
-# Global
-
-lacewiki.label.Message=Message
-lacewiki.label.OK=OK
-lacewiki.label.Cancel=Cancel
-lacewiki.label.Left=Left
-lacewiki.label.Right=Right
-lacewiki.label.Previous=Previous
-lacewiki.label.Next=Next
-
-lacewiki.button.CreateDocument=<u>C</u>reate
-lacewiki.button.CreateDocument.accesskey=C
-lacewiki.button.EditDocument=<u>E</u>dit
-lacewiki.button.EditDocument.accesskey=E
-lacewiki.button.HistoryDocument=H<u>i</u>story
-lacewiki.button.HistoryDocument.accesskey=I
-lacewiki.button.BrowseDirectory=<u>B</u>rowse
-lacewiki.button.BrowseDirectory.accesskey=B
-lacewiki.button.CreateSubdirectory=Create <u>S</u>ubdirectory
-lacewiki.button.CreateSubdirectory.accesskey=S
-lacewiki.button.EditDirectory=<u>E</u>dit Directory
-lacewiki.button.EditDirectory.accesskey=E
-lacewiki.button.NewDocument=<u>N</u>ew Document
-lacewiki.button.NewDocument.accesskey=N
-lacewiki.button.UploadFile=<u>U</u>pload File
-lacewiki.button.UploadFile.accesskey=U
-lacewiki.button.NewArea=<u>N</u>ew Area
-lacewiki.button.NewArea.accesskey=N
-lacewiki.button.EditWikiRoot=<u>E</u>dit Wiki Root
-lacewiki.button.EditWikiRoot.accesskey=E
-lacewiki.button.Edit=Edit
-lacewiki.button.EmptyTrash=Empty Trash
-
-lacewiki.button.SwitchWorkspace=Switch <u>W</u>orkspace
-lacewiki.button.SwitchWorkspace.accesskey=W
-
-lacewiki.button.OK=<u>O</u>k
-lacewiki.button.OK.accesskey=O
-lacewiki.button.Cancel=<u>C</u>ancel
-lacewiki.button.Cancel.accesskey=C
-lacewiki.button.CancelNoKey=Cancel
-
-lacewiki.button.Remove=Remove
-lacewiki.button.Add=Add
-lacewiki.button.Save=Save
-lacewiki.button.Update=Update
-lacewiki.button.Delete=Delete
-lacewiki.button.Show=Show
-lacewiki.button.Diff=Diff
-lacewiki.button.Rollback=Rollback
-lacewiki.button.PurgeHistory=Purge History
-lacewiki.button.Find=Find
-lacewiki.button.FirstPage=First Page
-lacewiki.button.PreviousPage=Previous Page
-lacewiki.button.NextPage=Next Page
-lacewiki.button.LastPage=Last Page
-lacewiki.button.Login=Login
-lacewiki.button.Logout=Logout
-lacewiki.button.Home=Home
-
-lacewiki.button.Close=Clos<u>e</u> Workspace
-lacewiki.button.Close.accesskey=E
-lacewiki.button.ExitEditor=<u>E</u>xit Workspace
-lacewiki.button.ExitEditor.accesskey=E
-
-lacewiki.button.SiteFeed=Subscribe to site
-lacewiki.button.DirectoryFeed=Subscribe to directory
-
-lacewiki.label.PermLink=PermLink
-lacewiki.label.WikiLink=WikiLink
-lacewiki.label.DirLink=Link to directory
-lacewiki.label.Link=Link
-lacewiki.label.ReadableBy=Readable by
-lacewiki.label.WritableBy=Writable by
-lacewiki.label.WriteProtected=Restrict edit access to admins
-lacewiki.label.User=User
-lacewiki.label.DeleteConfirmation=Delete Confirmation
-lacewiki.label.AreYouSureYouWantToDelete=Are you sure you want to delete
-lacewiki.label.DeleteAllChildren=?
-lacewiki.label.Confirmation=Confirmation
-lacewiki.label.AreYouSureYouWantToExecute=Are you sure you want to execute this operation?
-
-lacewiki.label.January=January
-lacewiki.label.February=February
-lacewiki.label.March=March
-lacewiki.label.April=April
-lacewiki.label.May=May
-lacewiki.label.June=June
-lacewiki.label.July=July
-lacewiki.label.August=August
-lacewiki.label.September=September
-lacewiki.label.October=October
-lacewiki.label.November=November
-lacewiki.label.December=December
-
-# Help
-
-lacewiki.label.help.DialogTitle=Help
-lacewiki.button.help.Help=Help
-lacewiki.button.help.CloseHelp=Close Help
-
-# Search
-
-lacewiki.label.search.Search=Search
-lacewiki.label.search.Results
-lacewiki.label.search.All=All
-lacewiki.label.search.In=In
-lacewiki.label.search.Terms=Terms
-lacewiki.label.search.ExactPhrase=Exact Phrase
-lacewiki.label.search.Results=Results
-lacewiki.button.search.Find=<u>F</u>ind
-lacewiki.button.search.Find.accesskey=F
-lacewiki.label.search.Exclude=Exclude
-lacewiki.label.search.AtAnyTime=at any time
-lacewiki.label.search.Last7Days=last 7 days
-lacewiki.label.search.Last30Days=last 30 days
-lacewiki.label.search.Last6Months=last 6 months
-lacewiki.label.search.To=to
-lacewiki.label.search.Of=of
-lacewiki.label.search.Hits=hit(s)
-lacewiki.label.search.NoHits=No hits, please try again.
-
-# Verification
-
-lacewiki.label.VerificationQuestion=Enter characters (ignore circles)
-lacewiki.label.VerificationError=The entered characters do not match the shown (case sensitive) characters, please try again.
-
-# Wiki Text Editor
-lacewiki.label.wikiTextEditor.CharactersLeft=chars left
-lacewiki.msg.wikiTextEditor.EditThisTextPreviewUpdatesAutomatically=Edit this text, the live preview updates if you stop typing for 3 seconds.
-
-# Document Display
-
-lacewiki.label.docDisplay.Tags=Tags
-lacewiki.label.docDisplay.Created=Created
-lacewiki.label.docDisplay.LastModified=Last Modified
-lacewiki.label.docDisplay.Revisions=Revisions
-lacewiki.label.docDisplay.Diff=Diff
-lacewiki.label.docDisplay.InitialRevision=Initial Revision
-
-# Directory Display
-
-lacewiki.label.dirDisplay.Name=Name
-lacewiki.label.dirDisplay.RightClickForActions=(right-click for menu)
-lacewiki.label.dirDisplay.Owner=Owner
-lacewiki.label.dirDisplay.ReadAccess=Read Access
-lacewiki.label.dirDisplay.WriteAccess=Write Access
-lacewiki.label.dirDisplay.LastModifiedOn=Last Modified On
-lacewiki.label.dirDisplay.DirectoryIsEmpty=This directory is empty.
-lacewiki.label.dirDisplay.PagerShowing=
-lacewiki.label.dirDisplay.PagerTo=to
-lacewiki.label.dirDisplay.PagerOf=of
-lacewiki.label.dirDisplay.PagerElements=
-lacewiki.label.dirDisplay.ShowItems=Show items
-lacewiki.label.dirDisplay.All=All
-lacewiki.button.dirDisplay.Refresh=Re<u>f</u>resh
-lacewiki.button.dirDisplay.Refresh.accesskey=F
-lacewiki.button.dirDisplay.View=View
-lacewiki.button.dirDisplay.ViewNewWindow=View (New Window)
-lacewiki.button.dirDisplay.Edit=Edit
-lacewiki.button.dirDisplay.Delete=Delete
-
-
-# Tag Display
-
-lacewiki.label.tagDisplay.Tag=Tag
-lacewiki.label.tagDisplay.InDirectory=In Directory
-lacewiki.label.tagDisplay.Owner=Owner
-lacewiki.label.tagDisplay.CreatedOn=Created On
-lacewiki.label.tagDisplay.LastModifiedOn=Last Modified On
-lacewiki.label.tagDisplay.NotAvailableForSkin=Tag display is not available with this skin.
-
-# Attachment Display
-
-lacewiki.label.attachmentDisplay.Attachments=Attachments
-
-# Comments
-
-lacewiki.label.commentsDisplay.Comment=comment
-lacewiki.label.commentsDisplay.Comments=comments
-lacewiki.label.commentsDisplay.CommentThread=the whole comment thread
-lacewiki.button.commentsDisplay.RemoveComment=Remove
-lacewiki.button.commentsDisplay.ReplyTo=Reply
-lacewiki.button.commentsDisplay.Quote=Quote
-lacewiki.button.commentForm.PostComment=Pos<u>t</u> Comment
-lacewiki.button.commentForm.PostComment.accesskey=T
-lacewiki.label.commentForm.PostComment=Post Comment
-lacewiki.label.commentForm.Name=Name
-lacewiki.label.commentForm.Email=E-mail address (optional)
-lacewiki.label.commentForm.Homepage=Homepage URL (optional)
-lacewiki.label.commentForm.Subject=Subject
-lacewiki.label.commentForm.Comment=Comment
-lacewiki.button.commentForm.Post=Post
-lacewiki.label.comment.FeedEntryTitlePrefix=[Comment]
-lacewiki.msg.comment.FeedIntro=This is a comment written in reply to
-lacewiki.label.comment.RateThisPosting=Rate this posting
-lacewiki.label.comment.Rating=Rating
-
-# User Control
-
-lacewiki.label.userControl.Username=Username
-lacewiki.label.userControl.Password=Password
-lacewiki.button.userControl.Login=<u>L</u>ogin
-lacewiki.button.userControl.Login.accesskey=L
-lacewiki.button.userControl.ResetPassword=Reset
-lacewiki.button.userControl.Register=<u>R</u>egister
-lacewiki.button.userControl.Register.accesskey=R
-lacewiki.button.userControl.Members=<u>M</u>embers
-lacewiki.button.userControl.Members.accesskey=M
-lacewiki.button.userControl.Logout=<u>L</u>ogout
-lacewiki.button.userControl.Logout.accesskey=L
-lacewiki.button.userControl.Home=<u>H</u>ome
-lacewiki.button.userControl.Home.accesskey=H
-lacewiki.button.userControl.Profile=<u>P</u>rofile
-lacewiki.button.userControl.Profile.accesskey=P
-lacewiki.button.userControl.Admin=<u>A</u>dmin
-lacewiki.button.userControl.Admin.accesskey=A
-
-# Password Reset
-lacewiki.label.resetPassword.DialogTitle=Reset Password
-lacewiki.label.resetPassword.Username=Your username
-lacewiki.label.resetPassword.Email=Your e-mail address
-lacewiki.button.resetPassword.Reset=Reset Password
-lacewiki.label.resetPassword.ResetPasswordOf=Reset password of
-lacewiki.label.resetPassword.Repeat=Repeat
-
-
-lacewiki.msg.resetPassword.NotValid=Your account and e-mail address information didn't match, please try again to reset your password.
-lacewiki.msg.resetPassword.EmailSent=A new activation code has been sent to your e-mail address, please read this e-mail to reset your password.
-lacewiki.msg.resetPassword.PasswordResetPrepared=Please reset your password, enter your new password twice.
-lacewiki.msg.resetPassword.Complete=Successfully reset password of account '{0}', please log in.
-
-# Search Control
-
-lacewiki.label.searchControl.Search=Search...
-lacewiki.button.searchControl.Find=<u>F</u>ind
-lacewiki.button.searchControl.Find.accesskey=F
-
-# Administration
-
-lacewiki.label.adminHome.Administration=Administration
-lacewiki.button.adminHome.SystemStatistics=S<u>y</u>stem Statistics
-lacewiki.button.adminHome.SystemStatistics.accesskey=Y
-lacewiki.button.adminHome.RolesPermissions=R<u>o</u>les &amp; Permissions
-lacewiki.button.adminHome.RolesPermissions.accesskey=O
-lacewiki.button.adminHome.LinkProtocols=<u>L</u>ink Protocols
-lacewiki.button.adminHome.LinkProtocols.accesskey=L
-lacewiki.button.adminHome.Preferences=P<u>r</u>eferences
-lacewiki.button.adminHome.Preferences.accesskey=R
-lacewiki.button.adminHome.SaveSettings=<u>S</u>ave Settings
-lacewiki.button.adminHome.SaveSettings.accesskey=S
-lacewiki.label.adminHome.SearchIndex=Search Index
-lacewiki.label.adminHome.NumOfIndexedDocuments=# of indexed documents
-lacewiki.label.adminHome.NumOfIndexedTerms=# of indexed terms
-lacewiki.label.adminHome.IndexSize=Index Size
-lacewiki.button.adminHome.RebuildIndex=Rebuild Index
-lacewiki.label.adminHome.Prefix=Prefix
-lacewiki.label.adminHome.TargetLink=Target Link
-lacewiki.label.adminHome.TargetWithPlaceHolder=Target with [[link]] placeholder
-lacewiki.label.adminHome.NotAvailableForSkin=Administration is not available with this skin.
-
-# User Home
-
-lacewiki.label.userHome.MemberAccount=Member Account
-lacewiki.label.userHome.EditUser=Edit User
-lacewiki.button.userHome.Account=Accou<u>n</u>t
-lacewiki.button.userHome.Account.accesskey=N
-lacewiki.button.userHome.Profile=Prof<u>i</u>le
-lacewiki.button.userHome.Profile.accesskey=I
-lacewiki.button.userHome.Preferences=P<u>r</u>eferences
-lacewiki.button.userHome.Preferences.accesskey=R
-lacewiki.button.userHome.RemovePortrait=Remove Portrait
-lacewiki.label.userHome.FirstName=First name
-lacewiki.label.userHome.LastName=Last name
-lacewiki.label.userHome.Email=E-Mail
-lacewiki.label.userHome.Username=Username
-lacewiki.label.userHome.Password=Password
-lacewiki.label.userHome.RepeatPassword=Repeat password
-lacewiki.label.userHome.AccountIsActive=Account is active
-lacewiki.label.userHome.Roles=Roles
-lacewiki.label.userHome.Portrait=Portrait
-lacewiki.label.userHome.UploadPortrait=Upload Portrait
-lacewiki.label.userHome.UploadMax=max
-lacewiki.label.userHome.Bio=Bio
-lacewiki.label.userHome.Website=Website
-lacewiki.label.userHome.Location=Location
-lacewiki.label.userHome.Occupation=Occupation
-lacewiki.label.userHome.Signature=Signature
-lacewiki.button.userHome.CreateHomeDirectory=Create Home Directory
-lacewiki.button.userHome.CreateHomeDirectory=Create Home Directory
-lacewiki.button.userHome.SaveSettings=<u>S</u>ave Settings
-lacewiki.button.userHome.SaveSettings.accesskey=S
-lacewiki.button.userHome.Delete=<u>D</u>elete
-lacewiki.button.userHome.Delete.accesskey=D
-lacewiki.label.userHome.NotAvailableForSkin=User management is not available with this skin.
-lacewiki.msg.userHome.PortraitRemoved=The portrait has been removed, save to make changes permanent.
-lacewiki.msg.userHome.WrongPortraitImageType=The file type '{0}' is not supported, the portrait was not updated.
-
-# User Register
-
-lacewiki.label.userRegister.Registration=Registration
-lacewiki.label.userRegister.RegisterNewAccount=Register new account
-lacewiki.label.userRegister.CreateNewAccount=Create new account
-lacewiki.label.userRegister.FirstName=First name
-lacewiki.label.userRegister.LastName=Last name
-lacewiki.label.userRegister.Email=E-Mail
-lacewiki.label.userRegister.Username=Username
-lacewiki.label.userRegister.Password=Password
-lacewiki.label.userRegister.RepeatPassword=Repeat password
-lacewiki.button.userRegister.Register=Re<u>g</u>ister
-lacewiki.button.userRegister.Register.accesskey=G
-lacewiki.button.userRegister.Create=<u>C</u>reate Account
-lacewiki.button.userRegister.Create.accesskey=C
-lacewiki.label.userRegister.NotAvailableForSkin=User registration is not available with this skin.
-
-# User List
-
-lacewiki.label.userList.MemberList=Member List
-lacewiki.label.userList.Results=Results
-lacewiki.button.userList.CreateAccount=<u>C</u>reate Account
-lacewiki.button.userList.CreateAccount.accesskey=C
-lacewiki.label.userList.SearchMembers=Search Members
-lacewiki.label.userList.Username=Username
-lacewiki.label.userList.FirstName=First name
-lacewiki.label.userList.LastName=Last name
-lacewiki.label.userList.Email=E-Mail
-lacewiki.label.userList.Show=Show
-lacewiki.button.userList.Find=F<u>i</u>nd
-lacewiki.button.userList.Find.accesskey=I
-lacewiki.label.userList.Found=Found
-lacewiki.label.userList.Members=member(s)
-lacewiki.label.userList.JoinedOn=Joined
-lacewiki.label.userList.LastLoginOn=Last Login
-lacewiki.label.userList.NotActivated=Not Activated
-lacewiki.button.userList.Edit=Edit
-lacewiki.label.userList.NotAvailableForSkin=User search is not available with this skin.
-
-# User Info
-
-lacewiki.label.userInfo.UserInfo=User Summary
-lacewiki.label.userInfo.NotActivated=Not Activated
-lacewiki.label.userInfo.NoProfile=No profile available.
-lacewiki.label.userInfo.Name=Name
-lacewiki.label.userInfo.JoinedOn=Joined
-lacewiki.label.userInfo.LastLoginOn=Last Login
-lacewiki.label.userInfo.RatingPoints=Rating Points
-lacewiki.button.userInfo.EditAccount=<u>E</u>dit Account
-lacewiki.button.userInfo.EditAccount.accesskey=E
-
-# Document History
-
-lacewiki.label.docHistory.DocumentHistory=Document History
-lacewiki.label.docHistory.CurrentRevision=Current revision
-lacewiki.label.docHistory.Parent=Parent
-lacewiki.label.docHistory.CreatedOn=Created On
-lacewiki.label.docHistory.LastModifiedOn=Last Modified On
-lacewiki.label.docHistory.HistoricalRevisions=Historical revisions
-lacewiki.button.docHistory.Show=Show
-lacewiki.button.docHistory.Diff=Diff
-lacewiki.button.docHistory.Rollback=Rollback
-lacewiki.button.docHistory.PurgeHistory=P<u>u</u>rge History
-lacewiki.button.docHistory.PurgeHistory.accesskey=U
-lacewiki.msg.docHistory.PurgedHistory=Historical revisions have been cleared.
-
-# Uploader
-
-lacewiki.msg.upload.HandlersDontMatch=Wrong file type uploaded, please try again with a different file.
-lacewiki.msg.upload.NoData=Please select a file to upload.
-lacewiki.label.upload.UploadFile=Upload File
-lacewiki.label.upload.Upload=Upload
-lacewiki.label.upload.UploadMax=max.
-lacewiki.button.upload.Upload=<u>U</u>pload
-lacewiki.button.upload.Upload.accesskey=U
-lacewiki.button.upload.UploadOverwrite=Upload
-
-# Upload Edit
-
-lacewiki.label.uploadEdit.UploadFile=Upload File
-lacewiki.label.uploadEdit.EditFile=Edit File
-lacewiki.label.uploadEdit.Directory=Directory
-lacewiki.label.uploadEdit.CreatedOn=Created on
-lacewiki.label.uploadEdit.Name=Name
-lacewiki.label.uploadEdit.FileDetails=File Details
-lacewiki.label.uploadEdit.Converters=Converters
-lacewiki.label.uploadEdit.OriginalImageSize=Original Image Size
-lacewiki.label.uploadEdit.Pixel=px
-lacewiki.label.uploadEdit.ImagePreview=Image Preview
-lacewiki.label.uploadEdit.ShowInDocuments=Show in documents
-lacewiki.label.uploadEdit.SmallThumbnail=Small thumbnail
-lacewiki.label.uploadEdit.MediumThumbnail=Medium thumbnail
-lacewiki.label.uploadEdit.LargeThumbnail=Large thumbnail
-lacewiki.label.uploadEdit.FullSize=Full size
-lacewiki.label.uploadEdit.AsAttachment=As attachment
-lacewiki.label.uploadEdit.Upload=Upload
-lacewiki.label.uploadEdit.UploadMax=max.
-lacewiki.button.uploadEdit.ZoomOut=Zoom Out
-lacewiki.button.uploadEdit.ZoomIn=Zoom In
-lacewiki.button.uploadEdit.ActualSize=Actual Size
-lacewiki.button.uploadEdit.Save=<u>S</u>ave
-lacewiki.button.uploadEdit.Save.accesskey=S
-lacewiki.button.uploadEdit.Update=<u>U</u>pdate
-lacewiki.button.uploadEdit.Update.accesskey=U
-lacewiki.button.uploadEdit.Delete=<u>D</u>elete
-lacewiki.button.uploadEdit.Delete.accesskey=D
-lacewiki.msg.uploadEdit.UpdateUpload=File {0} has been uploaded.
-
-# Document Edit
-
-lacewiki.label.docEdit.CreateDocument=Create Document
-lacewiki.label.docEdit.EditDocument=Edit Document
-lacewiki.button.docEdit.Content=<u>C</u>ontent
-lacewiki.button.docEdit.Content.accesskey=C
-lacewiki.button.docEdit.Properties=Proper<u>t</u>ies
-lacewiki.button.docEdit.Properties.accesskey=T
-lacewiki.button.docEdit.AdminOptions=Admin <u>O</u>ptions
-lacewiki.button.docEdit.AdminOptions.accesskey=O
-lacewiki.label.docEdit.Directory=Directory
-lacewiki.label.docEdit.Name=Name
-lacewiki.label.docEdit.RenderNameAsTitle=Render name as document title
-lacewiki.label.docEdit.MinorChange=Minor change, don't create a new revision
-lacewiki.label.docEdit.CreateOnParentFeeds=Create entry on parent directory feeds
-lacewiki.label.docEdit.CreateOnSiteFeed=Create entry on global site feed
-lacewiki.label.docEdit.PushOnFeeds=Push changes onto feeds
-lacewiki.label.docEdit.PushOnParentFeeds=Push changes onto feeds of parent directories
-lacewiki.label.docEdit.Content=Content
-lacewiki.label.docEdit.EnableLivePreview=Enable live preview
-lacewiki.label.docEdit.ShowPluginSettings=Show plugin settings in preview
-lacewiki.label.docEdit.CreatedOn=Created on
-lacewiki.label.docEdit.Options=Options
-lacewiki.label.docEdit.EnableComments=Enable comments
-lacewiki.label.docEdit.AllowCommentPosting=Allow posting of new comments
-lacewiki.label.docEdit.PushCommentsOnFeeds=Push comments onto feeds of parent directories (except site feed)
-lacewiki.label.docEdit.Header=Header
-lacewiki.label.docEdit.Footer=Footer
-lacewiki.button.docEdit.Save=<u>S</u>ave
-lacewiki.button.docEdit.Save.accesskey=S
-lacewiki.button.docEdit.Update=<u>U</u>pdate
-lacewiki.button.docEdit.Update.accesskey=U
-lacewiki.button.docEdit.Delete=<u>D</u>elete
-lacewiki.button.docEdit.Delete.accesskey=D
-
-# Directory Edit
-
-lacewiki.label.dirEdit.CreateDirectory=Create Directory
-lacewiki.label.dirEdit.EditDirectory=Edit Directory
-lacewiki.label.dirEdit.Parent=Parent
-lacewiki.label.dirEdit.CreatedOn=Created on
-lacewiki.label.dirEdit.Name=Name
-lacewiki.label.dirEdit.Description=Description
-lacewiki.label.dirEdit.DefaultDocument=Default Document
-lacewiki.label.dirEdit.NoDefaultDocument=No Default Document
-lacewiki.label.dirEdit.MenuItems=Menu items
-lacewiki.label.dirEdit.Options=Options
-lacewiki.label.dirEdit.EnableFeed=Enable syndication feed
-lacewiki.button.dirEdit.ResetFeed=Clear Feed
-lacewiki.button.dirEdit.Save=<u>S</u>ave
-lacewiki.button.dirEdit.Save.accesskey=S
-lacewiki.button.dirEdit.Update=<u>U</u>pdate
-lacewiki.button.dirEdit.Update.accesskey=U
-lacewiki.button.dirEdit.Delete=<u>D</u>elete
-lacewiki.button.dirEdit.Delete.accesskey=D
-
-# Tag Editor
-
-lacewiki.label.tagEdit.Tags=Tags
-lacewiki.label.tagEdit.PopularTags=Popular tags
-
-# Owner Selector
-
-lacewiki.label.ownerSelector.SelectOwner=Select Owner...
-lacewiki.button.ownerSelector.Select=Select
-
-# Clipboard
-
-lacewiki.label.Clipboard=Clipboard
-lacewiki.label.Clipboard.Select=Select
-lacewiki.label.Clipboard.All=All
-lacewiki.label.Clipboard.None=None
-lacewiki.label.Clipboard.Documents=Documents
-lacewiki.label.Clipboard.UploadedFiles=Uploaded Files
-lacewiki.label.Clipboard.Item=item
-lacewiki.label.Clipboard.Items=items
-lacewiki.label.Clipboard.Empty=Empty
-lacewiki.label.Clipboard.CopySuffix=Copy
-lacewiki.button.Clipboard.Copy=<u>C</u>opy
-lacewiki.button.Clipboard.Copy.accesskey=C
-lacewiki.button.Clipboard.Cut=C<u>u</u>t
-lacewiki.button.Clipboard.Cut.accesskey=U
-lacewiki.button.Clipboard.Clear=C<u>l</u>ear
-lacewiki.button.Clipboard.Clear.accesskey=L
-lacewiki.button.Clipboard.Paste=<u>P</u>aste
-lacewiki.button.Clipboard.Paste.accesskey=P
-lacewiki.msg.Clipboard.DuplicatePasteName=The name '{0}' was already in use in this area, renamed item to '{1}'.
-lacewiki.msg.Clipboard.DuplicatePasteNameFailure=The name '{0}' was already in use in this area and is too long to be renamed, skipping paste.
-
-
-# Entity update/delete/persist
-
-lacewiki.msg.Directory.Persist=Directory '{0}' has been saved.
-lacewiki.msg.Directory.Update=Directory '{0}' has been updated.
-lacewiki.msg.Directory.Delete=Directory '{0}' has been deleted.
-lacewiki.msg.Document.Persist=Document '{0}' has been saved.
-lacewiki.msg.Document.Update=Document '{0}' has been updated.
-lacewiki.msg.Document.Delete=Document '{0}' has been deleted.
-lacewiki.msg.Upload.Persist=File '{0}' has been saved.
-lacewiki.msg.Upload.Update=File '{0}' has been updated.
-lacewiki.msg.Upload.Delete=File '{0}' has been deleted.
-lacewiki.msg.User.Persist=User account '{0}' has been saved.
-lacewiki.msg.User.Update=User account '{0}' has been updated.
-lacewiki.msg.User.Delete=User account '{0}' has been deleted.
-lacewiki.msg.Feed.Create=Created syndication feed for this directory.
-lacewiki.msg.Feed.Remove=Removed syndication feed of this directory.
-lacewiki.msg.Feed.Reset=Queued removal of all feed entries from the syndication feed of this directory, please update to finalize.
-lacewiki.msg.Comment.Persist=Comment '{0}' has been saved.
-lacewiki.msg.Comment.Update=Comment '{0}' has been updated.
-lacewiki.msg.Comment.Delete=Comment '{0}' has been deleted.
-lacewiki.msg.Node.Trashed='{0}' has been moved into the trash.
-
-# Entity validation
-
-lacewiki.entity.DuplicateName=This name/subject/title is already used, please change it.
-lacewiki.entity.NameMustStartWithLetterOrNumber=Name must start with a letter or number and not contain [, ], |, / or #.
-lacewiki.entity.NameMustStartWithUppercaseLetterOrNumber=Name must start with an uppercase letter or number.
-lacewiki.entity.NameMustNotContainSpecialCharacters=Name can not contain special characters.
-lacewiki.entity.UsernameMustStartWithALetterAndOnlyContainLetters=Username must start with a letter, and only contain letters and numbers.
-lacewiki.entity.LinkProtokol.PrefixMustOnlyContainLetters=Prefix must only contain letters.
-
-# Misc messages
-
-lacewiki.msg.SessionTimeout=Your session has timed out, you will be redirected to the start page.
-lacewiki.msg.UsernameExists=A user with that username already exists, please pick a different name.
-lacewiki.msg.PasswordControlNoMatch=The passwords don't match, please enter again.
-lacewiki.msg.PasswordDoesntMatchPattern=Password does not match the pattern {0}, please enter again.
-lacewiki.msg.PasswordOrPasswordControlEmpty=Please enter your password twice!
-lacewiki.msg.HomeDirectoryCreated=New home directory has been queued, save settings to commit.
-lacewiki.msg.AccountCreatedConfirmationSent=Account activation e-mail was sent to your address, please read it to activate your account.
-lacewiki.msg.AccountActivatedPleaseLogin=Your account has been activated, please login.
-lacewiki.msg.InvalidActivationCode=The activation code is invalid.
-lacewiki.msg.UpdatedCurrentCredentials=You modified your username and/or password, please login again.
-lacewiki.msg.SystemSettingsUpdated=System settings updated.
-lacewiki.msg.DiffOldVersionDisplayed=Showing historical revision {0}.
-lacewiki.msg.HistoricalNodeNotFound=Couldn't find historical node: {0}.
-lacewiki.msg.DiffCreated=Comparing current revision with historical revision {0}.
-lacewiki.msg.RollingBackDocument=Rolling document back to revision {0}.
-lacewiki.msg.NoUserFound=No user with given attributes was found, please try again.
-lacewiki.msg.MemberHomedirectoryNotFound=Could not find member area with name {0}  - your configuration is broken, please change it.
-lacewiki.msg.TrashAreaNotFound=Could not find trash area with name {0}  - your configuration is broken, please change it.
-lacewiki.msg.HelpAreaNotFound=Could not find help area with name {0}  - your configuration is broken, please change it.
-lacewiki.msg.ImportSkippingDirectory=Skipping directory '{0}', importing not supported...
-lacewiki.msg.ImportDuplicateName=Skipping file '{0}', name is already used in this area...
-lacewiki.msg.ImportInvalidNode=Skipping entry '{0}', invalid: {1}
-lacewiki.msg.ImportOk=Created file '{0}' in current directory.
-lacewiki.msg.OptimisticLockError=Someone modified the same record while you were editing it. Your workspace has been closed.
-lacewiki.msg.AccessDenied=Access Denied
-lacewiki.msg.FatalError=An unrecoverable error occured, please check the application log or contact the administrator!
-lacewiki.msg.Trash.Emptied=All items in the trash have been permanently deleted.
-lacewiki.msg.AutomaticallyGeneratedFeed=Aggregated Feed
-
-# Preferences Editors
-lacewiki.preferences.editor.SelectNone=(None)
-
-
-# Core Preferences
-
-lacewiki.preferences.wiki.Name=Core: Wiki
-lacewiki.preferences.wiki.BaseURL=Static URL (in e-mails etc.) without trailing slash (e.g. 'http://my.wiki.server/installdir')
-lacewiki.preferences.wiki.TimeZone=Timezone of server (ID as defined in java.util.TimeZone
-lacewiki.preferences.wiki.ThemeName=Theme directory name
-lacewiki.preferences.wiki.MemberArea=Wiki area for user home directories
-lacewiki.preferences.wiki.HelpArea=Wiki area containing help texts
-lacewiki.preferences.wiki.TrashArea=Wiki area used as trash
-lacewiki.preferences.wiki.DefaultDocumentId=Identifier of the default start document of the Wiki
-lacewiki.preferences.wiki.RenderPermLinks=Render permanent links by default (or /Wiki/WordLinks)
-lacewiki.preferences.wiki.PermLinkSuffix=Append this suffix to permanent identifier
-lacewiki.preferences.wiki.FeedTitlePrefix=Feed title prefix
-lacewiki.preferences.wiki.PurgeFeedEntriesAfterDays=Feed entries are purged after days
-lacewiki.preferences.wiki.AtSymbolReplacement=Replace @ symbol in e-mail addresses with
-lacewiki.preferences.wiki.ShowEmailToLoggedInOnly=Show e-mail addresses only to logged-in users
-lacewiki.preferences.wiki.MainMenuLevels=Main menu is flattened to levels (0 for unlimited visible levels)
-lacewiki.preferences.wiki.MainMenuDepth=Main menu maximum depth of directories
-lacewiki.preferences.wiki.MainMenuShowAdminOnly=Main menu includes only directories owned by system administrator
-lacewiki.preferences.wiki.ShowDocumentCreatorHistory=Show document creator/edit history in document footer
-lacewiki.preferences.wiki.ShowTags=Show document tags in document footer
-lacewiki.preferences.wiki.ShowSiteFeedInMenu=Show global site feed in main menu
-
-lacewiki.preferences.userManagement.Name=Core: User Management
-lacewiki.preferences.userManagement.ActivationCodeSalt=Secret salt used to generate activation codes
-lacewiki.preferences.userManagement.PasswordRegex=Regex used for password strength verification
-lacewiki.preferences.userManagement.NewUserInRole=Default role of new user
-lacewiki.preferences.userManagement.EnableRegistration=Enable public user registration
-lacewiki.preferences.userManagement.CreateHomeAfterUserActivation=Create home directory for new user after activation
-lacewiki.preferences.userManagement.HomepageDefaultContent=Content of created home page
-
-lacewiki.preferences.documentEditor.Name=Core: Document Editor
-lacewiki.preferences.documentEditor.MinorRevisionEnabled=Enable 'Minor Revision' checkbox by default
-lacewiki.preferences.documentEditor.RegularEditAreaRows=Rows shown in text editor by default
-lacewiki.preferences.documentEditor.RegularEditAreaColumns=Columns shown in text editor by default
-
-lacewiki.preferences.comments.Name=Core: Comments
-lacewiki.preferences.comments.ListAscending=List flat comments ascending by date (or descending)
-lacewiki.preferences.comments.EnableByDefault=Enable comments by default for new documents
-lacewiki.preferences.comments.Threaded=Threaded comment display (or flat)
-

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/WikiIdentity.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/WikiIdentity.java	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/core/action/WikiIdentity.java	2008-02-07 10:40:12 UTC (rev 7390)
@@ -36,19 +36,6 @@
     private User currentUser;
     private Integer currentAccessLevel;
 
-    // TODO: Override Shanes last commit, which introduced a bug, raising an "already logged in" message 
-    public String login() {
-        try {
-            authenticate();
-            if (Events.exists()) Events.instance().raiseEvent(EVENT_LOGIN_SUCCESSFUL);
-            return "loggedIn";
-        }
-        catch (LoginException ex) {
-            if (Events.exists()) Events.instance().raiseEvent(EVENT_LOGIN_FAILED, ex);
-            return null;
-        }
-    }
-
     // We don't care if a user is logged in, just check it...
     public void checkRestriction(String expr) {
         if (!evaluateExpression(expr)) {

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/plugin/forum/ForumHome.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/plugin/forum/ForumHome.java	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/plugin/forum/ForumHome.java	2008-02-07 10:40:12 UTC (rev 7390)
@@ -175,6 +175,10 @@
                 "Removed syndication feed of this forum");
     }
 
+    protected String getEditorWorkspaceDescription(boolean create) {
+        return null;
+    }
+
     /* -------------------------- Internal Methods ------------------------------ */
 
     private void endConversation() {

Modified: trunk/examples/wiki/src/main/org/jboss/seam/wiki/plugin/forum/TopicHome.java
===================================================================
--- trunk/examples/wiki/src/main/org/jboss/seam/wiki/plugin/forum/TopicHome.java	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/src/main/org/jboss/seam/wiki/plugin/forum/TopicHome.java	2008-02-07 10:40:12 UTC (rev 7390)
@@ -156,6 +156,10 @@
         );
     }
 
+    protected String getEditorWorkspaceDescription(boolean create) {
+        return null;
+    }
+
     /* -------------------------- Internal Methods ------------------------------ */
 
     private void endConversation() {

Modified: trunk/examples/wiki/src/test/org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml
===================================================================
--- trunk/examples/wiki/src/test/org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/src/test/org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml	2008-02-07 10:40:12 UTC (rev 7390)
@@ -25,7 +25,7 @@
 
     <PREFERENCE PREF_ID = "50" OBJ_VERSION = "0" USER_ID = "[NULL]" ENTITY_NAME = "DocEditor" PROPERTY_NAME = "minorRevisionEnabled" STRING_VALUE = "[NULL]" LONG_VALUE = "[NULL]" BOOLEAN_VALUE = "true"/>
     <PREFERENCE PREF_ID = "51" OBJ_VERSION = "0" USER_ID = "[NULL]" ENTITY_NAME = "DocEditor" PROPERTY_NAME = "regularEditAreaRows" STRING_VALUE = "[NULL]" LONG_VALUE = "15" BOOLEAN_VALUE = "[NULL]"/>
-    <PREFERENCE PREF_ID = "52" OBJ_VERSION = "0" USER_ID = "[NULL]" ENTITY_NAME = "DocEditor" PROPERTY_NAME = "regularEditAreaColumns" STRING_VALUE = "[NULL]" LONG_VALUE = "60" BOOLEAN_VALUE = "[NULL]"/>
+    <PREFERENCE PREF_ID = "52" OBJ_VERSION = "0" USER_ID = "[NULL]" ENTITY_NAME = "DocEditor" PROPERTY_NAME = "regularEditAreaColumns" STRING_VALUE = "[NULL]" LONG_VALUE = "65" BOOLEAN_VALUE = "[NULL]"/>
 
     <PREFERENCE PREF_ID = "60" OBJ_VERSION = "0" USER_ID = "[NULL]" ENTITY_NAME = "UserManagement" PROPERTY_NAME = "activationCodeSalt" STRING_VALUE = "MySecretSalt123" LONG_VALUE = "[NULL]" BOOLEAN_VALUE = "[NULL]"/>
     <PREFERENCE PREF_ID = "61" OBJ_VERSION = "0" USER_ID = "[NULL]" ENTITY_NAME = "UserManagement" PROPERTY_NAME = "passwordRegex" STRING_VALUE = "^[0-9A-Za-z]{6,15}" LONG_VALUE = "[NULL]" BOOLEAN_VALUE = "[NULL]"/>

Modified: trunk/examples/wiki/view/includes/commentForm.xhtml
===================================================================
--- trunk/examples/wiki/view/includes/commentForm.xhtml	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/view/includes/commentForm.xhtml	2008-02-07 10:40:12 UTC (rev 7390)
@@ -84,26 +84,28 @@
                 </s:decorate>
                 </a:region>
 
-                <ui:include src="wikiTextEditor.xhtml">
-                    <ui:param name="textEditorId" value="comment"/>
-                    <ui:param name="textPreviewId" value="commentPreview"/>
-                    <ui:param name="namingContainer" value="commentForm"/>
-                    <ui:param name="statusId" value="commentFormStatus"/>
-                    <ui:param name="label" value="#{messages['lacewiki.label.commentForm.Comment']}"/>
-                    <ui:param name="valueBinding" value="#{commentHome.instance.content}"/>
-                    <ui:param name="valueMaxLength" value="32768"/>
-                    <ui:param name="valueRequired" value="true"/>
-                    <ui:param name="textEditorColumns" value="#{commentHome.instance.ownedByRegularUser ? '60' : '48'}"/>
-                    <ui:param name="textEditorRows" value="10"/>
-                </ui:include>
+                <a:region>
+                    <ui:include src="wikiTextEditor.xhtml">
+                        <ui:param name="textEditorId" value="comment"/>
+                        <ui:param name="textPreviewId" value="commentPreview"/>
+                        <ui:param name="namingContainer" value="commentForm"/>
+                        <ui:param name="statusId" value="commentFormStatus"/>
+                        <ui:param name="label" value="#{messages['lacewiki.label.commentForm.Comment']}"/>
+                        <ui:param name="valueBinding" value="#{commentHome.instance.content}"/>
+                        <ui:param name="valueMaxLength" value="32768"/>
+                        <ui:param name="valueRequired" value="true"/>
+                        <ui:param name="textEditorColumns" value="#{commentHome.instance.ownedByRegularUser ? '60' : '48'}"/>
+                        <ui:param name="textEditorRows" value="10"/>
+                    </ui:include>
 
-                <ui:include src="wikiTextPreview.xhtml">
-                    <ui:param name="textPreviewId" value="commentPreview"/>
-                    <ui:param name="valueBinding" value="#{commentHome.instance.content}"/>
-                    <ui:param name="enablePlugins" value="false"/>
-                    <ui:param name="baseDocument" value="#{currentDocument}"/>
-                    <ui:param name="baseDirectory" value="#{currentDocument.parent}"/>
-                </ui:include>
+                    <ui:include src="wikiTextPreview.xhtml">
+                        <ui:param name="textPreviewId" value="commentPreview"/>
+                        <ui:param name="valueBinding" value="#{commentHome.instance.content}"/>
+                        <ui:param name="enablePlugins" value="false"/>
+                        <ui:param name="baseDocument" value="#{currentDocument}"/>
+                        <ui:param name="baseDirectory" value="#{currentDocument.parent}"/>
+                    </ui:include>
+                </a:region>
 
                 <s:decorate id="verifyCaptchaEntry" template="captchaEntry.xhtml">
                     <ui:param name="statusId" value="commentFormStatus"/>

Modified: trunk/examples/wiki/view/includes/wikiTextEditor.xhtml
===================================================================
--- trunk/examples/wiki/view/includes/wikiTextEditor.xhtml	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/view/includes/wikiTextEditor.xhtml	2008-02-07 10:40:12 UTC (rev 7390)
@@ -90,9 +90,52 @@
 
             <s:div id="#{textEditorId}TextEditDiv" styleClass="textEditResizable">
 
-                <h:panelGrid columns="2" cellpadding="0" cellspacing="0" border="0"
-                             columnClasses="textArea, textAreaHelp">
+                <h:panelGrid columns="1" cellpadding="0" cellspacing="0" border="0">
 
+                    <h:panelGrid columns="2" cellpadding="0" cellspacing="0" border="0">
+
+                        <s:fragment>
+                            <select id="#{textEditorId}Formatter"
+                                    onchange="formatText(
+                                                jQuery('##{namingContainer}\\:#{textEditorId}TextArea')[0],
+                                                jQuery('##{textEditorId}Formatter')[0].options[jQuery('##{textEditorId}Formatter')[0].selectedIndex].value
+                                              );
+                                              #{textEditorId}RefreshPreview();
+                                              jQuery('##{textEditorId}Formatter')[0].options[0].selected = true;">
+                                <option value="">#{messages['lacewiki.msg.wikiTextEditor.FormatSelection']}</option>
+                                <option value="">#{messages['lacewiki.msg.wikiTextEditor.FormatInline']}</option>
+                                <option value="|{i}|">#{messages['lacewiki.msg.wikiTextEditor.FormatMonospace']}</option>
+                                <option value="*{i}*">#{messages['lacewiki.msg.wikiTextEditor.FormatEmphasis']}</option>
+                                <option value="_{i}_">#{messages['lacewiki.msg.wikiTextEditor.FormatUnderline']}</option>
+                                <option value="~{i}~">#{messages['lacewiki.msg.wikiTextEditor.FormatStrikeout']}</option>
+                                <option value="^{i}^">#{messages['lacewiki.msg.wikiTextEditor.FormatSuperscript']}</option>
+                                <option value="&quot;{i}&quot;">#{messages['lacewiki.msg.wikiTextEditor.FormatQuote']}</option>
+                                <option value="[My Link=>{i}]">#{messages['lacewiki.msg.wikiTextEditor.FormatLink']}</option>
+                                <option value="">#{messages['lacewiki.msg.wikiTextEditor.FormatBlock']}</option>
+                                <option value="`{b}`">#{messages['lacewiki.msg.wikiTextEditor.FormatCodeBlock']}</option>
+                                <option value="&quot;{b}&quot;">#{messages['lacewiki.msg.wikiTextEditor.FormatQuoteBlock']}</option>
+                                <option value="= {b}">#{messages['lacewiki.msg.wikiTextEditor.FormatUnorderedList']}</option>
+                                <option value="# {b}">#{messages['lacewiki.msg.wikiTextEditor.FormatOrderedList']}</option>
+                                <option value="+ {b}">#{messages['lacewiki.msg.wikiTextEditor.FormatHeadline1']}</option>
+                                <option value="++ {b}">#{messages['lacewiki.msg.wikiTextEditor.FormatHeadline2']}</option>
+                                <option value="+++ {b}">#{messages['lacewiki.msg.wikiTextEditor.FormatHeadline3']}</option>
+                                <option value="++++ {b}">#{messages['lacewiki.msg.wikiTextEditor.FormatHeadline4']}</option>
+                            </select>
+
+                            <a:jsFunction name="#{textEditorId}RefreshPreview" status="#{statusId}"
+                                          reRender="#{textEditorId}MessageLabel, #{textPreviewId}"/>
+                        </s:fragment>
+
+                        <ui:decorate template="helpPopupButton.xhtml">
+                            <ui:param name="label"        value="#{messages['lacewiki.button.help.Help']}"/>
+                            <ui:param name="width"        value="450"/>
+                            <ui:param name="height"       value="350"/>
+                            <ui:param name="offsetId"     value="#{namingContainer}\\\\:#{textEditorId}TextEditDiv"/>
+                            <ui:param name="helpDocument" value="Wiki Text Markup"/>
+                         </ui:decorate>
+
+                    </h:panelGrid>
+
                     <h:inputTextarea id="#{textEditorId}TextArea"
                                      styleClass="ajaxSupport"
                                      tabindex="1"
@@ -114,14 +157,6 @@
                                    rendered="#{not empty textPreviewId}"/>
                     </h:inputTextarea>
 
-                    <ui:decorate template="helpPopupButton.xhtml">
-                        <ui:param name="label"        value="#{messages['lacewiki.button.help.Help']}"/>
-                        <ui:param name="width"        value="450"/>
-                        <ui:param name="height"       value="350"/>
-                        <ui:param name="offsetId"     value="#{namingContainer}\\\\:#{textEditorId}TextEditDiv"/>
-                        <ui:param name="helpDocument" value="Wiki Text Markup"/>
-                     </ui:decorate>
-
                 </h:panelGrid>
 
                 <s:div id="#{textEditorId}TextEditResizeHandle" styleClass="textEditResizeHandle" style="display:none;"/>

Modified: trunk/examples/wiki/view/plugins/forumReplies/replyForm.xhtml
===================================================================
--- trunk/examples/wiki/view/plugins/forumReplies/replyForm.xhtml	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/view/plugins/forumReplies/replyForm.xhtml	2008-02-07 10:40:12 UTC (rev 7390)
@@ -77,27 +77,28 @@
                         </h:inputText>
                     </s:decorate>
 
-                    <!-- TODO: Update messsage label -->
-                    <ui:include src="../../includes/wikiTextEditor.xhtml">
-                        <ui:param name="textEditorId" value="reply"/>
-                        <ui:param name="textPreviewId" value="replyPreview"/>
-                        <ui:param name="namingContainer" value="forumRepliesPlugin\\\\:replyForm"/>
-                        <ui:param name="statusId" value="replyFormStatus"/>
-                        <ui:param name="label" value="#{messages['forum.label.replyForm.Message']}"/>
-                        <ui:param name="valueBinding" value="#{replyHome.instance.content}"/>
-                        <ui:param name="valueMaxLength" value="32768"/>
-                        <ui:param name="valueRequired" value="true"/>
-                        <ui:param name="textEditorColumns" value="#{replyHome.instance.ownedByRegularUser ? '60' : '48'}"/>
-                        <ui:param name="textEditorRows" value="20"/>
-                    </ui:include>
+                    <a:region>
+                        <ui:include src="../../includes/wikiTextEditor.xhtml">
+                            <ui:param name="textEditorId" value="reply"/>
+                            <ui:param name="textPreviewId" value="replyPreview"/>
+                            <ui:param name="namingContainer" value="forumRepliesPlugin\\\\:replyForm"/>
+                            <ui:param name="statusId" value="replyFormStatus"/>
+                            <ui:param name="label" value="#{messages['forum.label.replyForm.Message']}"/>
+                            <ui:param name="valueBinding" value="#{replyHome.instance.content}"/>
+                            <ui:param name="valueMaxLength" value="32768"/>
+                            <ui:param name="valueRequired" value="true"/>
+                            <ui:param name="textEditorColumns" value="#{replyHome.instance.ownedByRegularUser ? '65' : '55'}"/>
+                            <ui:param name="textEditorRows" value="20"/>
+                        </ui:include>
 
-                    <ui:include src="../../includes/wikiTextPreview.xhtml">
-                        <ui:param name="textPreviewId" value="replyPreview"/>
-                        <ui:param name="valueBinding" value="#{replyHome.instance.content}"/>
-                        <ui:param name="enablePlugins" value="false"/>
-                        <ui:param name="baseDocument" value="#{currentDocument}"/>
-                        <ui:param name="baseDirectory" value="#{currentDocument.parent}"/>
-                    </ui:include>
+                        <ui:include src="../../includes/wikiTextPreview.xhtml">
+                            <ui:param name="textPreviewId" value="replyPreview"/>
+                            <ui:param name="valueBinding" value="#{replyHome.instance.content}"/>
+                            <ui:param name="enablePlugins" value="false"/>
+                            <ui:param name="baseDocument" value="#{currentDocument}"/>
+                            <ui:param name="baseDirectory" value="#{currentDocument.parent}"/>
+                        </ui:include>
+                    </a:region>
 
                     <s:decorate id="verifyCaptchaEntry" template="../../includes/captchaEntry.xhtml">
                         <ui:param name="statusId" value="replyFormStatus"/>

Modified: trunk/examples/wiki/view/plugins/forumTopics/topicForm.xhtml
===================================================================
--- trunk/examples/wiki/view/plugins/forumTopics/topicForm.xhtml	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/view/plugins/forumTopics/topicForm.xhtml	2008-02-07 10:40:12 UTC (rev 7390)
@@ -31,29 +31,31 @@
                         <h:inputText id="topicName" tabindex="1" size="60" maxlength="255" required="true" value="#{topicHome.instance.name}"/>
                     </s:decorate>
 
-                    <ui:include src="../../includes/wikiTextEditor.xhtml">
-                        <ui:param name="textEditorId" value="topic"/>
-                        <ui:param name="textPreviewId" value="topicPreview"/>
-                        <ui:param name="namingContainer" value="forumTopicsPlugin\\\\:topicForm"/>
-                        <ui:param name="statusId" value="topicFormStatus"/>
-                        <ui:param name="label" value="#{messages['forum.label.Message']}"/>
-                        <ui:param name="valueBinding" value="#{topicHome.formContent}"/>
-                        <ui:param name="valueMaxLength" value="32768"/>
-                        <ui:param name="valueRequired" value="true"/>
-                        <ui:param name="textEditorColumns" value="60"/>
-                        <ui:param name="textEditorRows" value="20"/>
-                    </ui:include>
-
-                    <s:div styleClass="marginLeft">
-                        <ui:include src="../../includes/wikiTextPreview.xhtml">
+                    <a:region>
+                        <ui:include src="../../includes/wikiTextEditor.xhtml">
+                            <ui:param name="textEditorId" value="topic"/>
                             <ui:param name="textPreviewId" value="topicPreview"/>
-                            <ui:param name="valueBinding" value="#{topicHome.instance.content}"/>
-                            <ui:param name="enablePlugins" value="false"/>
-                            <ui:param name="baseDocument" value="#{topicHome.instance}"/>
-                            <ui:param name="baseDirectory" value="#{currentDirectory}"/>
+                            <ui:param name="namingContainer" value="forumTopicsPlugin\\\\:topicForm"/>
+                            <ui:param name="statusId" value="topicFormStatus"/>
+                            <ui:param name="label" value="#{messages['forum.label.Message']}"/>
+                            <ui:param name="valueBinding" value="#{topicHome.formContent}"/>
+                            <ui:param name="valueMaxLength" value="32768"/>
+                            <ui:param name="valueRequired" value="true"/>
+                            <ui:param name="textEditorColumns" value="60"/>
+                            <ui:param name="textEditorRows" value="20"/>
                         </ui:include>
-                    </s:div>
 
+                        <s:div styleClass="marginLeft">
+                            <ui:include src="../../includes/wikiTextPreview.xhtml">
+                                <ui:param name="textPreviewId" value="topicPreview"/>
+                                <ui:param name="valueBinding" value="#{topicHome.instance.content}"/>
+                                <ui:param name="enablePlugins" value="false"/>
+                                <ui:param name="baseDocument" value="#{topicHome.instance}"/>
+                                <ui:param name="baseDirectory" value="#{currentDirectory}"/>
+                            </ui:include>
+                        </s:div>
+                    </a:region>
+
                     <s:fragment rendered="#{s:hasPermission('User', 'isAdmin', currentUser)}">
                         <s:div styleClass="entry">
                             <div class="label">

Modified: trunk/examples/wiki/view/themes/default/css/template.css
===================================================================
--- trunk/examples/wiki/view/themes/default/css/template.css	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/view/themes/default/css/template.css	2008-02-07 10:40:12 UTC (rev 7390)
@@ -659,11 +659,6 @@
     margin-left: 240px;
 }
 
-.textAreaHelp {
-    padding-top: 5px;
-    vertical-align: top;
-}
-
 .textPreview {
     border: 1px dashed #666;
     margin-bottom: 10px;

Modified: trunk/examples/wiki/view/themes/default/template.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/default/template.xhtml	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/view/themes/default/template.xhtml	2008-02-07 10:40:12 UTC (rev 7390)
@@ -117,6 +117,44 @@
             return s.substring(s.length - suffix.length) == suffix;
         }
 
+        function formatText(textArea, formatString) {
+            var inlinePlaceholder = "{i}";
+            var blockPlaceholder = "{b}";
+            var inline = formatString.indexOf(inlinePlaceholder) != -1;
+            var block = formatString.indexOf(blockPlaceholder) != -1;
+            if (!(inline || block)) return;
+            var prefix = formatString.substring(0, formatString.indexOf(inline ? inlinePlaceholder : blockPlaceholder));
+            var suffix = formatString.substring(formatString.indexOf(inline ? inlinePlaceholder : blockPlaceholder)+3, formatString.length);
+            if (block) {
+                prefix = "\n" + prefix;
+                suffix = suffix + "\n";
+            }
+
+            if (typeof(textArea.caretPos) != "undefined" &amp;&amp; textArea.createTextRange) {
+                var caretPos = textArea.caretPos;
+                caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? prefix + caretPos.text + suffix + ' ' : prefix + caretPos.text + suffix;
+                caretPos.select();
+            } else if (typeof(textArea.selectionStart) != "undefined") {
+                var begin = textArea.value.substr(0, textArea.selectionStart);
+                var selection = textArea.value.substr(textArea.selectionStart, textArea.selectionEnd - textArea.selectionStart);
+                var end = textArea.value.substr(textArea.selectionEnd);
+                var newCursorPos = textArea.selectionStart;
+                var scrollPos = textArea.scrollTop;
+                textArea.value = begin + prefix + selection + suffix + end;
+                if (textArea.setSelectionRange) {
+                    if (selection.length == 0)
+                        textArea.setSelectionRange(newCursorPos + prefix.length, newCursorPos + prefix.length);
+                    else
+                        textArea.setSelectionRange(newCursorPos, newCursorPos + prefix.length + selection.length + suffix.length);
+                    textArea.focus();
+                }
+                textArea.scrollTop = scrollPos;
+            } else {
+                textArea.value += prefix + suffix;
+                textArea.focus(textArea.value.length - 1);
+            }
+        }
+
         // ###################### Popups #################################
 
         function deleteConfirmation(message, deleteFunction) {

Modified: trunk/examples/wiki/view/themes/inrelationto/css/inrelationto.css
===================================================================
--- trunk/examples/wiki/view/themes/inrelationto/css/inrelationto.css	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/view/themes/inrelationto/css/inrelationto.css	2008-02-07 10:40:12 UTC (rev 7390)
@@ -668,11 +668,6 @@
     margin-left: 240px;
 }
 
-.textAreaHelp {
-    padding-top: 5px;
-    vertical-align: top;
-}
-
 .textPreview {
     border: 1px dashed #666;
     margin-bottom: 10px;

Deleted: trunk/examples/wiki/view/themes/inrelationto/mailtemplates/test.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/inrelationto/mailtemplates/test.xhtml	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/view/themes/inrelationto/mailtemplates/test.xhtml	2008-02-07 10:40:12 UTC (rev 7390)
@@ -1,40 +0,0 @@
-<m:message xmlns="http://www.w3.org/1999/xhtml"
-            xmlns:m="http://jboss.com/products/seam/mail"
-            xmlns:h="http://java.sun.com/jsf/html"
-            xmlns:f="http://java.sun.com/jsf/core">
-    <m:header name="X-Sent-From" value="JBoss Seam" />
-    <m:from name="Seam Wiki" address="do-not-reply at jboss.com" />
-    <m:to name="#{user.firstname} #{user.lastname}">#{user.email}</m:to>
-    <m:subject>[Seam Wiki] Registration Confirmation</m:subject>
-    <m:body>
-        <html>
-            <body>
-            <p>Hello #{user.firstname} #{user.lastname},</p>
-
-            <p>
-            you registered an account on the Seam Wiki. You need to click the following link to confirm the
-            validity of your e-mail address and to activate your account:</p>
-
-            <h:outputLink value="#{preferences.get('Wiki').baseURL}/confirmRegistration.seam?activationCode=#{user.activationCode}">Click this link to activate the account '#{user.username}'</h:outputLink>
-
-            <p>
-            Regards,<br/>
-            JBoss Seam Wiki
-            </p>
-    </body>
-        </html>
-        <f:facet name="alternative">
-            <h:outputText>
-Hello #{user.firstname} #{user.lastname},
-
-you registered an account on the Seam Wiki. You need to use the following link to confirm the
-validity of your e-mail address and to activate your account:
-
-#{preferences.get('Wiki').baseURL}/confirmRegistration.seam?activationCode=#{user.activationCode}
-
-Regards,
-JBoss Seam Wiki
-            </h:outputText>
-        </f:facet>
-    </m:body>
-</m:message>

Modified: trunk/examples/wiki/view/themes/inrelationto/template.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/inrelationto/template.xhtml	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/view/themes/inrelationto/template.xhtml	2008-02-07 10:40:12 UTC (rev 7390)
@@ -116,6 +116,44 @@
             return s.substring(s.length - suffix.length) == suffix;
         }
 
+        function formatText(textArea, formatString) {
+            var inlinePlaceholder = "{i}";
+            var blockPlaceholder = "{b}";
+            var inline = formatString.indexOf(inlinePlaceholder) != -1;
+            var block = formatString.indexOf(blockPlaceholder) != -1;
+            if (!(inline || block)) return;
+            var prefix = formatString.substring(0, formatString.indexOf(inline ? inlinePlaceholder : blockPlaceholder));
+            var suffix = formatString.substring(formatString.indexOf(inline ? inlinePlaceholder : blockPlaceholder)+3, formatString.length);
+            if (block) {
+                prefix = "\n" + prefix;
+                suffix = suffix + "\n";
+            }
+
+            if (typeof(textArea.caretPos) != "undefined" &amp;&amp; textArea.createTextRange) {
+                var caretPos = textArea.caretPos;
+                caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? prefix + caretPos.text + suffix + ' ' : prefix + caretPos.text + suffix;
+                caretPos.select();
+            } else if (typeof(textArea.selectionStart) != "undefined") {
+                var begin = textArea.value.substr(0, textArea.selectionStart);
+                var selection = textArea.value.substr(textArea.selectionStart, textArea.selectionEnd - textArea.selectionStart);
+                var end = textArea.value.substr(textArea.selectionEnd);
+                var newCursorPos = textArea.selectionStart;
+                var scrollPos = textArea.scrollTop;
+                textArea.value = begin + prefix + selection + suffix + end;
+                if (textArea.setSelectionRange) {
+                    if (selection.length == 0)
+                        textArea.setSelectionRange(newCursorPos + prefix.length, newCursorPos + prefix.length);
+                    else
+                        textArea.setSelectionRange(newCursorPos, newCursorPos + prefix.length + selection.length + suffix.length);
+                    textArea.focus();
+                }
+                textArea.scrollTop = scrollPos;
+            } else {
+                textArea.value += prefix + suffix;
+                textArea.focus(textArea.value.length - 1);
+            }
+        }
+
         // ###################### Popups #################################
 
         function deleteConfirmation(message, deleteFunction) {

Modified: trunk/examples/wiki/view/themes/sfwkorg/css/sfwk.css
===================================================================
--- trunk/examples/wiki/view/themes/sfwkorg/css/sfwk.css	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/view/themes/sfwkorg/css/sfwk.css	2008-02-07 10:40:12 UTC (rev 7390)
@@ -951,11 +951,6 @@
     margin-left: 240px;
 }
 
-.textAreaHelp {
-    padding-top: 5px;
-    vertical-align: top;
-}
-
 .textPreview {
     border: 1px dashed #666;
     margin-bottom: 10px;

Modified: trunk/examples/wiki/view/themes/sfwkorg/template.xhtml
===================================================================
--- trunk/examples/wiki/view/themes/sfwkorg/template.xhtml	2008-02-07 03:06:44 UTC (rev 7389)
+++ trunk/examples/wiki/view/themes/sfwkorg/template.xhtml	2008-02-07 10:40:12 UTC (rev 7390)
@@ -119,6 +119,44 @@
             return s.substring(s.length - suffix.length) == suffix;
         }
 
+        function formatText(textArea, formatString) {
+            var inlinePlaceholder = "{i}";
+            var blockPlaceholder = "{b}";
+            var inline = formatString.indexOf(inlinePlaceholder) != -1;
+            var block = formatString.indexOf(blockPlaceholder) != -1;
+            if (!(inline || block)) return;
+            var prefix = formatString.substring(0, formatString.indexOf(inline ? inlinePlaceholder : blockPlaceholder));
+            var suffix = formatString.substring(formatString.indexOf(inline ? inlinePlaceholder : blockPlaceholder)+3, formatString.length);
+            if (block) {
+                prefix = "\n" + prefix;
+                suffix = suffix + "\n";
+            }
+
+            if (typeof(textArea.caretPos) != "undefined" &amp;&amp; textArea.createTextRange) {
+                var caretPos = textArea.caretPos;
+                caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? prefix + caretPos.text + suffix + ' ' : prefix + caretPos.text + suffix;
+                caretPos.select();
+            } else if (typeof(textArea.selectionStart) != "undefined") {
+                var begin = textArea.value.substr(0, textArea.selectionStart);
+                var selection = textArea.value.substr(textArea.selectionStart, textArea.selectionEnd - textArea.selectionStart);
+                var end = textArea.value.substr(textArea.selectionEnd);
+                var newCursorPos = textArea.selectionStart;
+                var scrollPos = textArea.scrollTop;
+                textArea.value = begin + prefix + selection + suffix + end;
+                if (textArea.setSelectionRange) {
+                    if (selection.length == 0)
+                        textArea.setSelectionRange(newCursorPos + prefix.length, newCursorPos + prefix.length);
+                    else
+                        textArea.setSelectionRange(newCursorPos, newCursorPos + prefix.length + selection.length + suffix.length);
+                    textArea.focus();
+                }
+                textArea.scrollTop = scrollPos;
+            } else {
+                textArea.value += prefix + suffix;
+                textArea.focus(textArea.value.length - 1);
+            }
+        }
+
         // ###################### Popups #################################
 
         function deleteConfirmation(message, deleteFunction) {
@@ -387,7 +425,7 @@
                 <a href="http://seam.demo.jboss.com/home.seam">Hotel Booking</a>
                 and the <a href="http://dvdstore.demo.jboss.com/home.seam">DVD Store</a>.
                 You can find the code for these demos in the
-                <a href="http:/www.seamframework.org/Download">Seam download package</a>.
+                <a href="http://www.seamframework.org/Download">Seam download package</a>.
             </p>
         </div>
 




More information about the seam-commits mailing list