001/* 
002    Licensed to the Apache Software Foundation (ASF) under one
003    or more contributor license agreements.  See the NOTICE file
004    distributed with this work for additional information
005    regarding copyright ownership.  The ASF licenses this file
006    to you under the Apache License, Version 2.0 (the
007    "License"); you may not use this file except in compliance
008    with the License.  You may obtain a copy of the License at
009
010       http://www.apache.org/licenses/LICENSE-2.0
011
012    Unless required by applicable law or agreed to in writing,
013    software distributed under the License is distributed on an
014    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
015    KIND, either express or implied.  See the License for the
016    specific language governing permissions and limitations
017    under the License.  
018 */
019package org.apache.wiki.ui.admin.beans;
020
021import javax.management.NotCompliantMBeanException;
022import javax.servlet.http.HttpServletRequest;
023
024import org.apache.wiki.WikiContext;
025import org.apache.wiki.WikiEngine;
026import org.apache.wiki.ui.admin.AdminBean;
027import org.apache.wiki.management.SimpleMBean;
028import org.apache.wiki.util.TextUtil;
029
030/**
031 *  This class is still experimental.
032 *  
033 *
034 */
035public class PlainEditorAdminBean
036    extends SimpleMBean
037    implements AdminBean
038{
039    private static final String TEMPLATE = 
040        "<div>"+
041        "<input type='checkbox' id='ajax' %checked/>Use AJAX?<br />"+
042        "<input type='submit' value='Submit'/>"+
043        "%messages"+
044        "</div>"
045        ;
046    
047    private boolean m_checked;
048    
049    private static final String[] ATTRIBUTES = {"title","checked"};
050    private static final String[] METHODS    = {};
051    
052    public PlainEditorAdminBean() throws NotCompliantMBeanException
053    {
054    }
055    
056    public String doGet(WikiContext context)
057    {
058        HttpServletRequest req = context.getHttpRequest();
059        
060        if( req != null && req.getMethod().equals("POST") && getTitle().equals( req.getParameter("form") ) )
061        {
062            return doPost( context );
063        }
064        String base = TEMPLATE;
065        
066        base = TextUtil.replaceString( base, "%checked", "checked='checked'" );
067        base = TextUtil.replaceString( base, "%messages", "" );
068        
069        return base;
070    }
071
072    public String doPost( WikiContext context )
073    {
074        HttpServletRequest req = context.getHttpRequest();
075        
076        boolean checked = "checked".equals( req.getParameter( "id" ) );
077        
078        // Make changes
079        
080        String base = TEMPLATE;
081        
082        base = TextUtil.replaceString( base, "%checked", checked ? "checked='checked'" : "" );
083        base = TextUtil.replaceString( base, "%messages", "<br /><font color='red'>Your settings have been saved</font>" );
084        
085        return base;
086    }
087    
088    public String getTitle()
089    {
090        return "Plain editor";
091    }
092
093    public int getType()
094    {
095        return EDITOR;
096    }
097
098    public boolean isEnabled()
099    {
100        return true;
101    }
102
103    public String getId()
104    {
105        return "editor.plain";
106    }
107    
108    public boolean getChecked()
109    {
110        return m_checked;
111    }
112    
113    public String[] getAttributeNames()
114    {
115        return ATTRIBUTES;
116    }
117
118    public String[] getMethodNames()
119    {
120        return METHODS;
121    }
122
123    public void initialize(WikiEngine engine)
124    {
125        // TODO Auto-generated method stub
126        
127    }
128}