sogo/UI/SOGoUI/UIxComponent.h

131 lines
3.7 KiB
Objective-C

/*
Copyright (C) 2007-2016 Inverse inc.
This file is part of SOGo
SOGo is free software; you can redistribute it and/or modify it under
the terms of the GNU Lesser General Public License as published by the
Free Software Foundation; either version 2, or (at your option) any
later version.
SOGo is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
License for more details.
You should have received a copy of the GNU Lesser General Public
License along with OGo; see the file COPYING. If not, write to the
Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA.
*/
#ifndef __UIxComponent_H_
#define __UIxComponent_H_
#import <NGObjWeb/SoComponent.h>
#import <NGObjWeb/WOContext+SoObjects.h>
#import <SOGo/SOGoObject.h>
/*
UIxComponent
Common superclass for most components used in SOGo.
TODO: document facilities.
*/
@class NSCalendarDate, NSTimeZone, NSMutableDictionary, SoUser, SOGoUserDefaults;
@interface UIxComponent : SoComponent
{
NSMutableDictionary *queryParameters;
NSCalendarDate *_selectedDate;
NSDictionary *locale;
SOGoUserDefaults *userDefaults;
NSArray *languages;
}
+ (NSArray *) amPmLabelKeys;
+ (NSArray *) monthLabelKeys;
+ (NSArray *) abbrMonthLabelKeys;
- (NSString *)queryParameterForKey:(NSString *)_key;
- (NSDictionary *)queryParameters;
/* use this to set 'sticky' query parameters */
- (void)setQueryParameter:(NSString *)_param forKey:(NSString *)_key;
/* date related query parameters */
- (NSDictionary *)queryParametersBySettingSelectedDate:(NSCalendarDate *)_date;
- (void)setSelectedDateQueryParameter:(NSCalendarDate *)_newDate
inDictionary:(NSMutableDictionary *)_qp;
/* appends queryParameters to _method if any are set */
- (NSString *)completeHrefForMethod:(NSString *)_method;
- (NSString *)ownMethodName;
- (NSString *)userFolderPath;
- (NSString *)applicationPath;
- (NSString *)modulePath;
- (NSString *)ownPath;
- (NSString *)relativePathToUserFolderSubPath:(NSString *)_sub;
/* date selection */
- (NSCalendarDate *) selectedDate;
- (NSString *) dateStringForDate: (NSCalendarDate *)_date;
- (BOOL) hideFrame;
- (UIxComponent *) jsCloseWithRefreshMethod: (NSString *) methodName;
/* SoUser */
- (NSString *) shortUserNameForDisplay;
/* Common defaults and settings */
- (int) minimumSearchLength;
- (NSString *) minimumSearchLengthLabel;
/* labels */
- (NSString *) labelForKey:(NSString *)_key;
- (NSString *) commonLabelForKey:(NSString *)_key;
- (NSString *) labelForKey: (NSString *) _str
withResourceManager: (WOResourceManager *) _rm;
- (NSString *) localizedNameForDayOfWeek:(unsigned)_dayOfWeek;
- (NSString *) localizedAbbreviatedNameForDayOfWeek:(unsigned)_dayOfWeek;
- (NSString *) localizedNameForMonthOfYear:(unsigned)_monthOfYear;
- (NSString *) localizedAbbreviatedNameForMonthOfYear:(unsigned)_monthOfYear;
/* HTTP method safety */
- (BOOL) isInvokedBySafeMethod;
/* display the "save" button */
- (BOOL) canCreateOrModify;
/* locale */
- (NSDictionary *)locale;
/* cached resource filenames */
- (WOResourceManager *) pageResourceManager;
- (NSString *) urlForResourceFilename: (NSString *) filename;
- (WOResponse *) responseWithStatus: (unsigned int) status;
- (WOResponse *) responseWithStatus: (unsigned int) status
andString: (NSString *) contentString;
- (WOResponse *) responseWithStatus: (unsigned int) status
andJSONRepresentation: (NSObject *) contentObject;
- (WOResponse *) responseWith204;
- (WOResponse *) redirectToLocation: (NSString *) newLocation;
/* Debugging */
- (NSString *) buildDate;
- (BOOL) isUIxDebugEnabled;
@end
#endif /* __UIxComponent_H_ */