001: /***************************************************************
002: * This file is part of the [fleXive](R) project.
003: *
004: * Copyright (c) 1999-2007
005: * UCS - unique computing solutions gmbh (http://www.ucs.at)
006: * All rights reserved
007: *
008: * The [fleXive](R) project is free software; you can redistribute
009: * it and/or modify it under the terms of the GNU General Public
010: * License as published by the Free Software Foundation;
011: * either version 2 of the License, or (at your option) any
012: * later version.
013: *
014: * The GNU General Public License can be found at
015: * http://www.gnu.org/copyleft/gpl.html.
016: * A copy is found in the textfile GPL.txt and important notices to the
017: * license from the author are found in LICENSE.txt distributed with
018: * these libraries.
019: *
020: * This library is distributed in the hope that it will be useful,
021: * but WITHOUT ANY WARRANTY; without even the implied warranty of
022: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
023: * GNU General Public License for more details.
024: *
025: * For further information about UCS - unique computing solutions gmbh,
026: * please see the company website: http://www.ucs.at
027: *
028: * For further information about [fleXive](R), please see the
029: * project website: http://www.flexive.org
030: *
031: *
032: * This copyright notice MUST APPEAR in all copies of the file!
033: ***************************************************************/package com.flexive.war.javascript;
034:
035: import com.flexive.shared.EJBLookup;
036: import com.flexive.shared.search.Briefcase;
037: import com.flexive.war.JsonWriter;
038:
039: import java.io.Serializable;
040: import java.io.StringWriter;
041:
042: /**
043: * JSON/RPC beans for the briefcase navigation page.
044: *
045: * @author Daniel Lichtenberger (daniel.lichtenberger@flexive.com), UCS - unique computing solutions gmbh (http://www.ucs.at)
046: * @version $Rev: 1 $
047: */
048: public class BriefcaseEditor implements Serializable {
049: private static final long serialVersionUID = 7897740955297252921L;
050: private static final String EMPTY = "[]";
051:
052: /**
053: * Renders all briefcases of the calling user.
054: *
055: * @return all briefcases of the calling user (in JSON format).
056: * @throws Exception on server-side errors
057: */
058: public String renderBriefcases() throws Exception {
059: final StringWriter out = new StringWriter();
060: final JsonWriter writer = new JsonWriter(out);
061: writer.startArray();
062: for (Briefcase briefcase : EJBLookup.getBriefcaseEngine()
063: .getList(true)) {
064: writer.startMap().writeAttribute("id", briefcase.getId())
065: .writeAttribute("name", briefcase.getName())
066: .writeAttribute("aclId", briefcase.getAcl())
067: .writeAttribute("size", briefcase.getSize())
068: .closeMap();
069: }
070: writer.closeArray().finishResponse();
071: return out.toString();
072: }
073:
074: /**
075: * Creates a new private briefcase with the given name.
076: *
077: * @param name the briefcase name
078: * @return nothing
079: * @throws Exception on server-side errors
080: */
081: public String create(String name) throws Exception {
082: EJBLookup.getBriefcaseEngine().create(name, null, null);
083: return EMPTY;
084: }
085:
086: /**
087: * Delete the briefcase with the given ID.
088: *
089: * @param id the briefcase ID
090: * @return nothing
091: * @throws Exception if the briefcase could not be deleted
092: */
093: public String remove(long id) throws Exception {
094: EJBLookup.getBriefcaseEngine().remove(id);
095: return EMPTY;
096: }
097:
098: /**
099: * Remove the given items from the briefcase with the given ID.
100: *
101: * @param id the briefcase ID
102: * @param itemIds the item ids
103: * @return nothing
104: * @throws Exception if the briefcase could not be deleted
105: */
106: public String removeItems(long id, long[] itemIds) throws Exception {
107: EJBLookup.getBriefcaseEngine().removeItems(id, itemIds);
108: return EMPTY;
109: }
110:
111: /**
112: * Add the given items to the given briefcase ID.
113: *
114: * @param id the briefcase id
115: * @param itemIds the item id(s)
116: * @return nothing
117: * @throws Exception if the briefcase could not be deleted
118: */
119: public String add(long id, long[] itemIds) throws Exception {
120: EJBLookup.getBriefcaseEngine().addItems(id, itemIds);
121: return EMPTY;
122: }
123:
124: /**
125: * Rename a briefcase.
126: *
127: * @param id the briefcase ID
128: * @param name the new briefcase name
129: * @return nothing
130: * @throws Exception if the briefcase could not be renamed
131: */
132: public String rename(long id, String name) throws Exception {
133: EJBLookup.getBriefcaseEngine().modify(id, name, null, null);
134: return EMPTY;
135: }
136:
137: /**
138: * Share a briefcase.
139: *
140: * @param id the briefcase ID
141: * @param aclId the ACL id. Set to -1 to "un-share" the briefcase.
142: * @return nothing
143: * @throws Exception if the briefcase could not be shared
144: */
145: public String share(long id, long aclId) throws Exception {
146: EJBLookup.getBriefcaseEngine().modify(id, null, null, aclId);
147: return EMPTY;
148: }
149: }
|