/* * Copyright (c) 2001 - 2005 ivata limited. * All rights reserved. * ----------------------------------------------------------------------------- * ivata groupware may be redistributed under the GNU General Public * License as published by the Free Software Foundation; * version 2 of the License. * * These programs are free software; you can redistribute them and/or * modify them under the terms of the GNU General Public License * as published by the Free Software Foundation; version 2 of the License. * * These programs are distributed in the hope that they will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * * See the GNU General Public License in the file LICENSE.txt for more * details. * * If you would like a copy of the GNU General Public License write to * * Free Software Foundation, Inc. * 59 Temple Place - Suite 330 * Boston, MA 02111-1307, USA. * * * To arrange commercial support and licensing, contact ivata at * http://www.ivata.com/contact.jsp * ----------------------------------------------------------------------------- * $Log: TopicForm.java,v $ * Revision 1.3 2005/04/10 20:31:58 colinmacleod * Added new themes. * Changed id type to String. * Changed i tag to em and b tag to strong. * Improved PicoContainerFactory with NanoContainer scripts. * * Revision 1.2 2005/04/09 17:19:46 colinmacleod * Changed copyright text to GPL v2 explicitly. * * Revision 1.1.1.1 2005/03/10 17:52:01 colinmacleod * Restructured ivata op around Hibernate/PicoContainer. * Renamed ivata groupware. * * Revision 1.7 2004/12/23 21:01:29 colinmacleod * Updated Struts to v1.2.4. * Changed base classes to use ivata masks. * * Revision 1.6 2004/11/12 18:19:15 colinmacleod * Change action and form classes to extend MaskAction, MaskForm respectively. * * Revision 1.5 2004/07/13 19:47:29 colinmacleod * Moved project to POJOs from EJBs. * Applied PicoContainer to services layer (replacing session EJBs). * Applied Hibernate to persistence layer (replacing entity EJBs). * * Revision 1.4 2004/03/21 21:16:29 colinmacleod * Shortened name to ivata op. * * Revision 1.3 2004/02/10 19:57:24 colinmacleod * Changed email address. * * Revision 1.2 2004/02/01 22:07:31 colinmacleod * Added full names to author tags * * Revision 1.1.1.1 2004/01/27 20:58:42 colinmacleod * Moved ivata openportal to SourceForge.. * * Revision 1.2 2003/10/15 14:16:53 colin * fixing for XDoclet * * Revision 1.3 2003/08/21 13:29:43 jano * we have new structure of userGroups * and * another frontend for maintan rights for item in topics * Revision 1.2 2003/03/03 16:57:12 colin * converted localization to automatic paths * added labels * added mandatory fieldName attribute * * Revision 1.1 2003/02/24 19:09:24 colin * moved to business * * Revision 1.9 2003/02/04 17:43:50 colin * copyright notice * * Revision 1.8 2003/01/08 10:39:39 jano * we changed interface of libraryBeans, we are using libraryRightBean for amending rights and for finding out * ----------------------------------------------------------------------------- */ package com.ivata.groupware.business.library.struts; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.struts.action.ActionMapping; import com.ivata.groupware.admin.security.server.SecuritySession; import com.ivata.groupware.business.library.Library; import com.ivata.groupware.business.library.topic.TopicDO; import com.ivata.mask.Mask; import com.ivata.mask.validation.ValidationErrors; import com.ivata.mask.web.struts.DialogForm; /** * <p>Contains details of a topic which is being changed, or where the * user (group) rights are being altered..</p> * * @since 2002-11-22 * @author Jan Boros <janboros@sourceforge.net> * @version $Revision: 1.3 $ */ public class TopicForm extends DialogForm { /** * <p> * Defines the base class of all objects in the value object list. * </p> */ private Class baseClass; /** * Library - used in validation. */ private Library library; /** * <p> * Mask containing all the field definitions for this list. * </p> */ private Mask mask; /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>add</strong> library items to this topic.</p> */ private Integer[] rightsAddItem; /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>amend</strong> this topic.</p> */ private Integer[] rightsAmend; /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>amend</strong> library items which have this topic.</p> */ private Integer[] rightsAmendItem; /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>remove</strong> this topic.</p> */ private Integer[] rightsRemove; /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>remove</strong> library items with this topic.</p> */ private Integer[] rightsRemoveItem; /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>view</strong> this topic.</p> */ private Integer[] rightsView; /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>view</strong> library items with this topic.</p> */ private Integer[] rightsViewItem; /** * <p>Contains details of the topic which is currently being modified.</p> */ private TopicDO topic; /** * <p>which TAB is active.</p> */ private Integer topicTab_activeTab; public TopicForm(final Library libraryParam) { this.library = libraryParam; } /** * TODO * * @see com.ivata.mask.web.struts.MaskForm#clear() */ protected void clear() { rightsAddItem = new Integer[] { }; rightsAmend = new Integer[] { }; rightsAmendItem = new Integer[] { }; rightsRemove = new Integer[] { }; rightsRemoveItem = new Integer[] { }; rightsView = new Integer[] { }; rightsViewItem = new Integer[] { }; topic = new TopicDO(); topicTab_activeTab = null; } /** * <p> * Defines the base class of all objects in the value object list. * </p> * * @return base class of all objects in the value object list. */ public final Class getBaseClass() { return baseClass; } /** * <p> * Mask containing all the field definitions for this list. * </p> * * @return mask containing all the field definitions for this list. */ public final Mask getMask() { return mask; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>add</strong> library items to this topic.</p> * * @return the current value of rightsAddItem. */ public final Integer[] getRightsAddItem() { return this.rightsAddItem; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>amend</strong> library items which have this topic.</p> * * @return the current value of rightsAmend. */ public final Integer[] getRightsAmend() { return this.rightsAmend; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>amend</strong> library items which have this topic.</p> * * @return the current value of rightsAmendItem. */ public final Integer[] getRightsAmendItem() { return this.rightsAmendItem; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>remove</strong> library items with this topic.</p> * * @return the current value of groups who can remove from this topic. */ public final Integer[] getRightsRemove() { return this.rightsRemove; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>remove</strong> library items with this topic.</p> * * @return the current value of rightsRemoveItem. */ public final Integer[] getRightsRemoveItem() { return this.rightsRemoveItem; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>view</strong> library items with this topic.</p> * * @return the current value of groups who can view this topic. */ public final Integer[] getRightsView() { return rightsView; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>view</strong> library items with this topic.</p> * * @return the current value of rightsViewItem. */ public final Integer[] getRightsViewItem() { return this.rightsViewItem; } /** * <p>Contains details of the topic which is currently being modified.</p> * * @return the current value of topic. */ public final TopicDO getTopic() { return topic; } /** * <p>which TAB is active.</p> * * @return the current value of topicTab_activeTab. */ public final Integer getTopicTab_activeTab() { return this.topicTab_activeTab; } /** * <p>Reset all bean properties to their default state. This method * is called before the properties are repopulated by the controller * servlet.<p> * * @param mapping The mapping used to select this instance * @param request The servlet request we are processing */ public void reset(final ActionMapping mapping, final HttpServletRequest request) { // I have to clear arrays because STRUTS is not doing that // meybe we neew to CHAGE tree select tag Integer[] tmpRights = { }; int tab = ((this.topicTab_activeTab == null) ? 0 : this.topicTab_activeTab.intValue()); if ((tab == 1) && (request.getParameterValues("rightsView") == null)) { this.setRightsView(tmpRights); } else if ((tab == 2) && (request.getParameterValues("rightsAmend") == null)) { this.setRightsAmend(tmpRights); } else if ((tab == 3) && (request.getParameterValues("rightsRemove") == null)) { this.setRightsRemove(tmpRights); } // if you didn't click delete butoon so don't show delete message if user want to delete topic if (request.getParameterValues("deleteWarn") == null) { this.setDeleteWarn(null); } } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>add</strong> library items to this topic.</p> * * @param rightsAddItem the new value of rightsAddItem. */ public final void setRightsAddItem(final Integer[] rightsAddItem) { this.rightsAddItem = rightsAddItem; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>amend</strong> library items which have this topic.</p> * * @param rightsAmend the new value of rightsAmend. */ public final void setRightsAmend(final Integer[] rightsAmend) { this.rightsAmend = rightsAmend; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>amend</strong> library items which have this topic.</p> * * @param rightsAmendItem the new value of rightsAmendItem. */ public final void setRightsAmendItem(final Integer[] rightsAmendItem) { this.rightsAmendItem = rightsAmendItem; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>remove</strong> library items with this topic.</p> * * @param rightsRemove the new value of groups who can remove from * this topic. */ public final void setRightsRemove(final Integer[] rightsRemove) { this.rightsRemove = rightsRemove; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>remove</strong> library items with this topic.</p> * * @param rightsRemoveItem the new value of rightsRemoveItem. */ public final void setRightsRemoveItem(final Integer[] rightsRemoveItem) { this.rightsRemoveItem = rightsRemoveItem; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>view</strong> library items with this topic.</p> * * @param rightsView the new value of groups who can view this topic. */ public final void setRightsView(final Integer[] rightsView) { this.rightsView = rightsView; } /** * <p>Contains an array of all of the group ids for groups who have * the right to <strong>view</strong> library items with this topic.</p> * * @param rightsViewItem the new value of rightsViewItem. */ public final void setRightsViewItem(final Integer[] rightsViewItem) { this.rightsViewItem = rightsViewItem; } /** * <p>Contains details of the topic which is currently being modified.</p> * * @param topic the new value of topic. */ public final void setTopic(final TopicDO topic) { this.topic = topic; } /** * <p>which TAB is active.</p> * * @param topicTab_activeTab the new value of topicTab_activeTab. */ public final void setTopicTab_activeTab(final Integer topicTab_activeTab) { this.topicTab_activeTab = topicTab_activeTab; } /** * <p>Call the corresponding server-side validation, handle possible * exceptions and return any errors generated.</p> * * @param mapping The mapping used to select this instance * @param request The servlet request we are processing * @return <code>ActionMessages</code> collection containing all * validation errors, or <code>null</code> if there were no errors. * @see com.ivata.mask.web.struts.MaskForm#validate(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpSession) */ public ValidationErrors validate(final HttpServletRequest request, final HttpSession session) { SecuritySession securitySession = (SecuritySession) session.getAttribute("securitySession"); return library.validate(securitySession, topic); } }