001: package org.tigris.scarab.util;
002:
003: /* ================================================================
004: * Copyright (c) 2000-2002 CollabNet. All rights reserved.
005: *
006: * Redistribution and use in source and binary forms, with or without
007: * modification, are permitted provided that the following conditions are
008: * met:
009: *
010: * 1. Redistributions of source code must retain the above copyright
011: * notice, this list of conditions and the following disclaimer.
012: *
013: * 2. Redistributions in binary form must reproduce the above copyright
014: * notice, this list of conditions and the following disclaimer in the
015: * documentation and/or other materials provided with the distribution.
016: *
017: * 3. The end-user documentation included with the redistribution, if
018: * any, must include the following acknowlegement: "This product includes
019: * software developed by Collab.Net <http://www.Collab.Net/>."
020: * Alternately, this acknowlegement may appear in the software itself, if
021: * and wherever such third-party acknowlegements normally appear.
022: *
023: * 4. The hosted project names must not be used to endorse or promote
024: * products derived from this software without prior written
025: * permission. For written permission, please contact info@collab.net.
026: *
027: * 5. Products derived from this software may not use the "Tigris" or
028: * "Scarab" names nor may "Tigris" or "Scarab" appear in their names without
029: * prior written permission of Collab.Net.
030: *
031: * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
032: * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
033: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
034: * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
035: * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
036: * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
037: * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
038: * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
039: * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
040: * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
041: * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
042: *
043: * ====================================================================
044: *
045: * This software consists of voluntary contributions made by many
046: * individuals on behalf of Collab.Net.
047: */
048:
049: import java.util.Locale;
050: import org.apache.fulcrum.localization.Localization;
051: import org.apache.turbine.Turbine;
052:
053: /**
054: * A place to put public final static strings and other constants.
055: *
056: * @author <a href="mailto:jon@collab.net">Jon S. Stevens</a>
057: * @version $Id: ScarabConstants.java 10198 2006-07-03 23:33:30Z dabbous $
058: */
059: public interface ScarabConstants {
060: /**
061: * the registration code uses this in order to store an object
062: * into the data.getUser().getTemp() hashtable. this is the key
063: * value and is used across several classes.
064: */
065: final String SESSION_REGISTER = "scarab.newUser";
066:
067: /**
068: * This is the key value that stores the name of the template to
069: * execute next.
070: */
071: final String NEXT_TEMPLATE = "nextTemplate";
072:
073: /**
074: * This is the key value that stores the name of the template to
075: * cancel to.
076: */
077: final String CANCEL_TEMPLATE = "cancelTemplate";
078:
079: /**
080: * This is the key value that stores the name of the template to
081: * go back to to (used in wizards)
082: */
083: final String BACK_TEMPLATE = "backTemplate";
084:
085: /**
086: * This is the key value that stores the name of the template to
087: * go back to to (used in wizards)
088: */
089: final String LAST_TEMPLATE = "lastTemplate";
090:
091: /**
092: * This is the key value that stores the name of the template
093: * that is currently being executed.
094: */
095: final String TEMPLATE = "template";
096:
097: /**
098: * This is the key value that stores the name of the action
099: * that is currently being executed.
100: */
101: final String ACTION = "action";
102:
103: /**
104: * This is the key value that stores the name of the template
105: * other than the next, or cancel, where a user can go
106: * depending on an action.
107: */
108: final String OTHER_TEMPLATE = "otherTemplate";
109:
110: /**
111: * This is the key value that stores the issue
112: * id.
113: */
114: final String ID = "id";
115:
116: /**
117: * Primary System Object
118: */
119: final String SCARAB_REQUEST_TOOL = "scarabR";
120:
121: /**
122: * Name of the scarab Link Tool
123: */
124: final String SCARAB_LINK_TOOL = "link";
125:
126: /**
127: * Collection of useful methods
128: */
129: final String SCARAB_GLOBAL_TOOL = "scarabG";
130:
131: /**
132: * The name used for the Intake tool
133: */
134: final String INTAKE_TOOL = "intake";
135:
136: /**
137: * The name used for the Security tool
138: */
139: final String SECURITY_TOOL = "security";
140:
141: /**
142: * The name used for the Security Admin tool
143: */
144: final String SECURITY_ADMIN_TOOL = "securityAdmin";
145:
146: /**
147: * The name used for the Localization tool
148: */
149: final String LOCALIZATION_TOOL = "l10n";
150:
151: /**
152: * Key passed around in the query string which tracks the
153: * current module.
154: */
155: final String DEBUG = "debug";
156: final String CURRENT_MODULE = "curmodule";
157: final String CURRENT_ISSUE_TYPE = "curit";
158: final String CURRENT_ADMIN_MENU = "curadminmenu";
159: final String REPORTING_ISSUE = "rissue";
160: final String CURRENT_REPORT = "curreport";
161: final String REMOVE_CURRENT_REPORT = "remcurreport";
162: final String HISTORY_SCREEN = "oldscreen";
163: final String NEW_MODULE = "newmodule";
164: final String NEW_ISSUE_TYPE = "newissuetype";
165: final String CURRENT_QUERY = "queryString";
166: final String CURRENT_MITLIST_ID = "curmitlistid";
167: final String CURRENT_MITLISTITEM = "curmitlistitem";
168: final String USER_SELECTED_MODULE = "scarab.user.selected.module";
169: /** @deprecated No longer used */
170: final String PROJECT_CHANGE_BOX = "project_change_box";
171:
172: final String THREAD_QUERY_KEY = "tqk";
173: final String REMOVE_CURRENT_MITLIST_QKEY = "remcurmitl";
174:
175: /**
176: * This name will be used to distinguish specific scarab application
177: * from other instances that it may interact with (in the future).
178: * It is the prefix to all issue id's created in response to an issue
179: * entered against a module in this instance's database.
180: */
181: final String INSTANCE_ID = "scarab.instance.id";
182:
183: /**
184: * This is maximum rating for a word.
185: *
186: */
187: final int MAX_WORD_RATING = 100000;
188:
189: /**
190: * The list of issue id's resulting from a search.
191: *
192: */
193: final String ISSUE_ID_LIST = "scarab.issueIdList";
194:
195: /**
196: * The message the user sees if they try to perform an action
197: * For which they have no permissions.
198: *
199: */
200: final String NO_PERMISSION_MESSAGE = "YouDoNotHavePermissionToAction";
201:
202: final String ATTACHMENTS_REPO_KEY = "scarab.attachments.repository";
203:
204: final String ARCHIVE_EMAIL_ADDRESS = "scarab.email.archive.toAddress";
205:
206: final String IMPORT_ADD_USERS = "scarab.import.addNewUsers";
207:
208: /**
209: * An attribute type
210: */
211: final String DROPDOWN_LIST = "Dropdown list";
212:
213: /**
214: * Scarab.properties key for roles to be automatically approved.
215: */
216: final String AUTO_APPROVED_ROLES = "scarab.automatic.role.approval";
217:
218: /**
219: * Scarab.properties key for restricting viewIssue to long form (single screen).
220: */
221: final String SINGLE_SCREEN_ONLY = "scarab.viewIssue.singleScreenOnly";
222:
223: /**
224: * key used to store session preference for long issue view vs. tabs
225: * used in get/setTemp within ScarabUser.
226: */
227: final String TAB_KEY = "scarab.view.issue.details";
228:
229: /**
230: * Value of the session parameter to view the issue in long form.
231: */
232: final String ISSUE_VIEW_ALL = "all";
233:
234: /**
235: * list of invalid characters when doing searches
236: */
237: final String INVALID_SEARCH_CHARACTERS = "\"\t(){}[]!,;:?./*-+=+&|<>\\~^";
238:
239: /**
240: * format for displaying dates
241: */
242: final String DATE_FORMAT = "yyyy-MM-dd HH:mm:ss z";
243:
244: /**
245: * The ISO date format that we accept when users enter dates.
246: */
247: final String ISO_DATE_PATTERN = "yyyy-MM-dd";
248:
249: /**
250: * The ISO date/time format that we accept when users enter
251: * dates and times.
252: */
253: final String ISO_DATETIME_PATTERN = "yyyy-MM-dd HH:mm";
254:
255: /**
256: * The default base for resolving ResourceBundles.
257: */
258: final String DEFAULT_BUNDLE_NAME = "ScarabBundle";
259:
260: /**
261: * Default locale, taken from configuration files.
262: */
263: Locale DEFAULT_LOCALE = new Locale(Localization
264: .getDefaultLanguage(), Localization.getDefaultCountry());
265:
266: /**
267: * Scarab.properties key for email encoding property.
268: */
269: final String DEFAULT_EMAIL_ENCODING_KEY = "scarab.email.encoding";
270:
271: final Integer INTEGER_0 = new Integer(0);
272:
273: //int QUERY_MAX_FILTER_CRITERIA =
274: // Turbine.getConfiguration().getInt("scarab.query.max.filter_criteria", 10);
275: final int QUERY_MAX_FILTER_CRITERIA = 10;
276: final int QUERY_MAX_JOIN = 31;
277: //Turbine.getConfiguration().getInt("scarab.query.max.join", 31);
278:
279: /**
280: * The maximum number of issues for batch view of detail.
281: */
282: final int ISSUE_MAX_VIEW = Turbine.getConfiguration().getInt(
283: "scarab.issue.max.view", 25);
284:
285: /**
286: * The maximum number of issues for batch assign.
287: */
288: final int ISSUE_MAX_ASSIGN = Turbine.getConfiguration().getInt(
289: "scarab.issue.max.assign", 25);
290:
291: /**
292: * The maximum number of issues for batch copy.
293: */
294: final int ISSUE_MAX_COPY = Turbine.getConfiguration().getInt(
295: "scarab.issue.max.copy", 250);
296:
297: /**
298: * The maximum number of issues for batch move.
299: */
300: final int ISSUE_MAX_MOVE = Turbine.getConfiguration().getInt(
301: "scarab.issue.max.move", 250);
302:
303: /**
304: * The maximumn number of report headings
305: */
306: final int REPORT_MAX_CRITERIA = Turbine.getConfiguration().getInt(
307: "scarab.report.max.criteria", 5);
308:
309: /**
310: * The default comment rendering engine
311: */
312: final String COMMENT_RENDER_ENGINE = Turbine.getConfiguration()
313: .getString("scarab.issue.comment.renderer", "plaintext");
314:
315: // Http parameters
316: public static final String HTTP_DOMAIN = "scarab.http.domain";
317: public static final String HTTP_SCHEME = "scarab.http.scheme";
318: public static final String HTTP_SCRIPT_NAME = "scarab.http.scriptname";
319: public static final String HTTP_PORT = "scarab.http.port";
320:
321: // Condition editor constants
322: public static int TRANSITION_OBJECT = 0;
323: public static int GLOBAL_ATTRIBUTE_OBJECT = 1;
324: public static int MODULE_ATTRIBUTE_OBJECT = 2;
325: public static int BLOCKED_MODULE_ISSUE_TYPE_OBJECT = 3;
326:
327: public static String IS_BLOCKED = "IsBlocked";
328: public static String BLOCKS = "Blocks";
329: }
|