libs-gsweb/GSWeb.framework/GSWComponent.h

315 lines
9.7 KiB
C
Raw Normal View History

/* GSWComponent.h - GSWeb: Class GSWComponent
Copyright (C) 1999 Free Software Foundation, Inc.
Written by: Manuel Guesdon <mguesdon@sbuilders.com>
Date: Jan 1999
This file is part of the GNUstep Web Library.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
This library 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
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the Free
Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
// $Id$
#ifndef _GSWComponent_h__
#define _GSWComponent_h__
@interface GSWComponent : GSWElement <NSCoding,NSCopying>
{
//TODO ==> private @private
NSString* name;
NSMutableDictionary* subComponents;
NSString* templateName;
GSWElement* template;
GSWComponentDefinition* componentDefinition;
GSWComponent* parent;
NSArray* associationsKeys;
NSArray* associations;
GSWElement* childTemplate;
GSWContext* context;
GSWSession* session;
2001-03-11 Manuel Guesdon <mguesdon@orange-concept.com> * GSWeb.framework/GSWWOCompatibility.h/.m: added * GSWeb.framework/GNUmakefile: added GSWWOCompatibility.h/.m * GSWeb.framework/GSWApplication.h/m: added WOApplicationMain, handle WO/GSWeb names * GSWeb.framework/GSWContext.m: handle WO/GSWeb names, added traces * GSWeb.framework/GSWConstants.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWDynamicURLString.m: handle WO/GSWeb names * GSWeb.framework/GSWProjectBundle.m/.h: handle WO/GSWeb names, suppress warnings * GSWeb.framework/GSWSession.m: handle WO/GSWeb names * GSWeb.framework/GSWRequest.m: handle WO/GSWeb names * GSWeb.framework/GSWTemplateParser.m: handle WO/GSWeb names, added tag counts to help errors hunt * GSWeb.framework/GSWBundle.m: handle WO/GSWeb names, added traces * GSWeb.framework/GSWResourceManager.m: handle WO/GSWeb names * GSWeb.framework/GSWURLValuedElementData.m: handle WO/GSWeb names * GSWeb.framework/GSWComponentRequestHandler.m: handle WO/GSWeb names * GSWeb.framework/GSWDirectAction.m: handle WO/GSWeb names * GSWeb.framework/GSWForm.m/.h: handle WO/GSWeb names * GSWeb.framework/GSWHyperlink.m/.h: handle WO/GSWeb names * GSWeb.framework/GSWResourceRequestHandler.m: handle WO/GSWeb names * GSWeb.framework/GSWDirectActionRequestHandler.m: handle WO/GSWeb names * GSWeb.framework/GSWActiveImage.m/.h: handle WO/GSWeb names * GSWeb.framework/GSWBindingNameAssociation.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWBrowser.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWComponent.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWHTMLURLValuedElement.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWImageButton.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWInput.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWPopUpButton.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWString.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWAssociation.m: handle WO/GSWeb names * GSWeb.framework/GSWCheckBox.m: handle WO/GSWeb names * GSWeb.framework/GSWCheckBoxList.m: handle WO/GSWeb names * GSWeb.framework/GSWComponentDefinition.m: handle WO/GSWeb names * GSWeb.framework/GSWRadioButton.m: handle WO/GSWeb names * GSWeb.framework/GSWRadioButtonList.m: handle WO/GSWeb names * GSWeb.framework/GSWText.m: handle WO/GSWeb names * GSWeb.framework/GSWTextField.m: handle WO/GSWeb names * GSWeb.framework/GSWDeployedBundle.m: warnings * GSWeb.framework/GSWeb.h: added include GSWeb/GSWSessionTimeOut.h, GSWWOCompatibility.h * GSWeb.framework/GSWAdaptor.m: traces * GSWeb.framework/GSWDefaultAdaptor.m: handle WO/GSWeb names, added traces * GSWeb.framework/GSWDefaultAdaptorThread.m/.h: handle WO/GSWeb names * GSWeb.framework/NSNonBlockingFileHandle.m: added traces * GSWeb.framework/GSWTemplateParserANTLR.m: handle WO/GSWeb names * GSWeb.framework/GSWTemplateParserXML.m: handle WO/GSWeb names added tag count to help errors hunt remove "Tag gsweb invalid" message handle unicode strings in node content traces remove html and body tags if they are not present in the template * GSWeb.framework/GSWTemplateParseXML.h: added ivar _isHTMLTag, _isBodyTag * GSWeb.framework/GSWSessionTimeOutManager.m: dealloc sessionOrderedTimeOuts instead of deallocating 2 times sessionTimeOuts * GSWExtensions.framework/French.lproj/GSWSessionRestorationErrorPage.gswc/GSWSessionRestorationErrorPage.html: tag mismatch, Encode french characters * GSWExtensions.framework/GSWSessionRestorationErrorPage.gswc/GSWSessionRestorationErrorPage.html: tag mismatch * GSWHTMLBareString.m: handle unicode strings in description * GSWExtensions.framework/French.lproj/GSWExceptionPage.gswc/GSWExceptionPage.html: Encode french characters, Tag Mismatch * GSWExtensions.framework/French.lproj/GSWPageRestorationErrorPage.gswc/GSWPageRestorationErrorPage.html: Encode french characters * GSWExtensions.framework/French.lproj/GSWSessionCreationErrorPage.gswc/GSWSessionCreationErrorPage.html: Encode french characters * GSWExtensions.framework/GSWExceptionPage.gswc/GSWExceptionPage.html: Tag Mismatch * GSWExtensions.framework/GSWExceptionPage.gswc/GSWExceptionPage.gswd: added convertHTMLEntities for strings * GSWeb.framework/GSWRepetition.m: added traces, fix "count" property bug, standardize ivars * GSWeb.framework/NSObject+IVarAccess+PerformSel.m: added traces, handle underscored ivars search git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gsweb/trunk@9332 72102866-910b-0410-8b05-ffd578937521
2001-03-11 17:15:44 +00:00
//GSWeb Additions {
NSDictionary* userDictionary;
NSDictionary* userAssociations;
NSDictionary* defaultAssociations;
NSMutableDictionary* validationFailureMessages;
2001-03-11 Manuel Guesdon <mguesdon@orange-concept.com> * GSWeb.framework/GSWWOCompatibility.h/.m: added * GSWeb.framework/GNUmakefile: added GSWWOCompatibility.h/.m * GSWeb.framework/GSWApplication.h/m: added WOApplicationMain, handle WO/GSWeb names * GSWeb.framework/GSWContext.m: handle WO/GSWeb names, added traces * GSWeb.framework/GSWConstants.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWDynamicURLString.m: handle WO/GSWeb names * GSWeb.framework/GSWProjectBundle.m/.h: handle WO/GSWeb names, suppress warnings * GSWeb.framework/GSWSession.m: handle WO/GSWeb names * GSWeb.framework/GSWRequest.m: handle WO/GSWeb names * GSWeb.framework/GSWTemplateParser.m: handle WO/GSWeb names, added tag counts to help errors hunt * GSWeb.framework/GSWBundle.m: handle WO/GSWeb names, added traces * GSWeb.framework/GSWResourceManager.m: handle WO/GSWeb names * GSWeb.framework/GSWURLValuedElementData.m: handle WO/GSWeb names * GSWeb.framework/GSWComponentRequestHandler.m: handle WO/GSWeb names * GSWeb.framework/GSWDirectAction.m: handle WO/GSWeb names * GSWeb.framework/GSWForm.m/.h: handle WO/GSWeb names * GSWeb.framework/GSWHyperlink.m/.h: handle WO/GSWeb names * GSWeb.framework/GSWResourceRequestHandler.m: handle WO/GSWeb names * GSWeb.framework/GSWDirectActionRequestHandler.m: handle WO/GSWeb names * GSWeb.framework/GSWActiveImage.m/.h: handle WO/GSWeb names * GSWeb.framework/GSWBindingNameAssociation.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWBrowser.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWComponent.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWHTMLURLValuedElement.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWImageButton.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWInput.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWPopUpButton.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWString.h/.m: handle WO/GSWeb names * GSWeb.framework/GSWAssociation.m: handle WO/GSWeb names * GSWeb.framework/GSWCheckBox.m: handle WO/GSWeb names * GSWeb.framework/GSWCheckBoxList.m: handle WO/GSWeb names * GSWeb.framework/GSWComponentDefinition.m: handle WO/GSWeb names * GSWeb.framework/GSWRadioButton.m: handle WO/GSWeb names * GSWeb.framework/GSWRadioButtonList.m: handle WO/GSWeb names * GSWeb.framework/GSWText.m: handle WO/GSWeb names * GSWeb.framework/GSWTextField.m: handle WO/GSWeb names * GSWeb.framework/GSWDeployedBundle.m: warnings * GSWeb.framework/GSWeb.h: added include GSWeb/GSWSessionTimeOut.h, GSWWOCompatibility.h * GSWeb.framework/GSWAdaptor.m: traces * GSWeb.framework/GSWDefaultAdaptor.m: handle WO/GSWeb names, added traces * GSWeb.framework/GSWDefaultAdaptorThread.m/.h: handle WO/GSWeb names * GSWeb.framework/NSNonBlockingFileHandle.m: added traces * GSWeb.framework/GSWTemplateParserANTLR.m: handle WO/GSWeb names * GSWeb.framework/GSWTemplateParserXML.m: handle WO/GSWeb names added tag count to help errors hunt remove "Tag gsweb invalid" message handle unicode strings in node content traces remove html and body tags if they are not present in the template * GSWeb.framework/GSWTemplateParseXML.h: added ivar _isHTMLTag, _isBodyTag * GSWeb.framework/GSWSessionTimeOutManager.m: dealloc sessionOrderedTimeOuts instead of deallocating 2 times sessionTimeOuts * GSWExtensions.framework/French.lproj/GSWSessionRestorationErrorPage.gswc/GSWSessionRestorationErrorPage.html: tag mismatch, Encode french characters * GSWExtensions.framework/GSWSessionRestorationErrorPage.gswc/GSWSessionRestorationErrorPage.html: tag mismatch * GSWHTMLBareString.m: handle unicode strings in description * GSWExtensions.framework/French.lproj/GSWExceptionPage.gswc/GSWExceptionPage.html: Encode french characters, Tag Mismatch * GSWExtensions.framework/French.lproj/GSWPageRestorationErrorPage.gswc/GSWPageRestorationErrorPage.html: Encode french characters * GSWExtensions.framework/French.lproj/GSWSessionCreationErrorPage.gswc/GSWSessionCreationErrorPage.html: Encode french characters * GSWExtensions.framework/GSWExceptionPage.gswc/GSWExceptionPage.html: Tag Mismatch * GSWExtensions.framework/GSWExceptionPage.gswc/GSWExceptionPage.gswd: added convertHTMLEntities for strings * GSWeb.framework/GSWRepetition.m: added traces, fix "count" property bug, standardize ivars * GSWeb.framework/NSObject+IVarAccess+PerformSel.m: added traces, handle underscored ivars search git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gsweb/trunk@9332 72102866-910b-0410-8b05-ffd578937521
2001-03-11 17:15:44 +00:00
// }
BOOL isPage;
BOOL isCachingEnabled;
BOOL isSynchronized;
};
-(id)init;
-(void)dealloc;
-(id)initWithCoder:(NSCoder*)coder_;
-(void)encodeWithCoder:(NSCoder*)coder_;
-(id)copyWithZone:(NSZone*)zone;
-(NSString*)description;
#if !GSWEB_STRICT
-(NSDictionary*)userDictionary;
-(void)setUserDictionary:(NSDictionary*)userDictionary_;
-(NSDictionary*)userAssociations;
-(void)setUserAssociations:(NSDictionary*)userAssociations_;
-(NSDictionary*)defaultAssociations;
-(void)setDefaultAssociations:(NSDictionary*)defaultAssociations_;
#endif
-(NSString*)frameworkName;
-(NSString*)baseURL;
-(NSString*)name;
-(NSString*)path;
-(NSString*)_templateNameFromClass:(Class)_class;
@end
//====================================================================
@interface GSWComponent (GSWCachingPolicy)
-(BOOL)isCachingEnabled;
-(void)setCachingEnabled:(BOOL)flag_;
@end
//====================================================================
@interface GSWComponent (GSWComponentA)
-(void)setParent:(GSWComponent*)_parent
associationsKeys:(NSArray*)_associationsKeys
associations:(NSArray*)_associations
template:(GSWElement*)_template;
-(void)synchronizeComponentToParent;
-(void)synchronizeParentToComponent;
-(GSWElement*)_childTemplate;
-(GSWElement*)_template;
-(GSWComponentDefinition*)_componentDefinition;
-(NSString*)_templateName;
-(BOOL)_isPage;
-(void)_setIsPage:(BOOL)_isPage;
-(void)_setContext:(GSWContext*)context_;
@end
//====================================================================
@interface GSWComponent (GSWResourceManagement)
-(GSWElement*)templateWithName:(NSString*)name_;
@end
//====================================================================
@interface GSWComponent (GSWComponentC)
-(GSWComponent*)subComponentForElementID:(NSString*)_elementId;
-(void)setSubComponent:(GSWComponent*)_component
forElementID:(NSString*)_elementId;
//NDFN
-(void)makeParentsPerformSelectorIfPossible:(SEL)aSelector;
-(void)makeParentsPerformSelectorIfPossible:(SEL)aSelector
withObject:(id)object_;
-(void)makeParentsPerformSelectorIfPossible:(SEL)aSelector
withObject:(id)object1_
withObject:(id)object2_;
-(id)makeAParentPerformSelectorIfPossible:(SEL)aSelector;
-(id)makeAParentPerformSelectorIfPossible:(SEL)aSelector
withObject:(id)object_;
-(id)makeAParentPerformSelectorIfPossible:(SEL)aSelector
withObject:(id)object1_
withObject:(id)object2_;
-(void)makeSubComponentsPerformSelectorIfPossible:(SEL)aSelector;
-(void)makeSubComponentsPerformSelectorIfPossible:(SEL)aSelector
withObject:(id)object_;
-(void)makeSubComponentsPerformSelectorIfPossible:(SEL)aSelector
withObject:(id)object1_
withObject:(id)object2_;
@end
//====================================================================
@interface GSWComponent (GSWComponentD)
-(GSWAssociation*)_associationWithName:(NSString*)parentBindingName_;
@end
//====================================================================
@interface GSWComponent (GSWSynchronizing)
-(BOOL)hasBinding:(NSString*)parentBindingName_;
-(void)setValue:(id)_value
forBinding:(NSString*)parentBindingName_;
-(id)valueForBinding:(NSString*)parentBindingName_;
-(BOOL)synchronizesVariablesWithBindings;
-(NSDictionary*)bindingAssociations;
@end
//====================================================================
@interface GSWComponent (GSWRequestHandling)
-(void)sleep;
-(void)sleepInContext:(GSWContext*)context_;
-(void)appendToResponse:(GSWResponse*)response_
inContext:(GSWContext*)context_;
-(GSWElement*)invokeActionForRequest:(GSWRequest*)request_
inContext:(GSWContext*)context_;
-(void)takeValuesFromRequest:(GSWRequest*)request_
inContext:(GSWContext*)context_;
#if !GSWEB_STRICT
-(void)setValidationFailureMessage:(NSString*)message
forElement:(GSWDynamicElement*)element_;
-(NSString*)validationFailureMessageForElement:(GSWDynamicElement*)element_;
-(NSString*)handleValidationExceptionDefault;
-(BOOL)isValidationFailure;
-(NSDictionary*)validationFailureMessages;
-(NSArray*)allValidationFailureMessages;
#endif
-(void)ensureAwakeInContext:(GSWContext*)context_;
-(void)awake;
-(void)awakeInContext:(GSWContext*)context_;
@end
//====================================================================
@interface GSWComponent (GSWActionInvocation)
-(id)performParentAction:(NSString*)attribute;
-(GSWComponent*)parent;
-(GSWComponent*)topParent;//NDFN
-(NSArray*)parents;//NDFN
-(NSArray*)parentsClasses;//NDFN
@end
//====================================================================
@interface GSWComponent (GSWConveniences)
-(GSWComponent*)pageWithName:(NSString*)_name;
-(GSWSession*)session;
-(BOOL)hasSession;
-(GSWContext*)context;
-(NSArray*)languages;//NDFN
-(GSWApplication*)application;
@end
//====================================================================
@interface GSWComponent (GSWLogging)
-(void)validationFailedWithException:(NSException*)_exception
value:(id)_value
keyPath:(id)_keyPath;
-(void)_debugWithString:(NSString*)_string;
-(void)debugWithFormat:(NSString*)_format,...;
-(void)logWithFormat:(NSString*)_format,...;
-(void)logWithFormat:(NSString*)_format
arguments:(va_list)argList;
+(void)logWithFormat:(NSString*)_format,...;
@end
//====================================================================
@interface GSWComponent (GSWComponentJ)
-(NSString*)_uniqueID;
@end
//====================================================================
@interface GSWComponent (GSWComponentK)
-(GSWResponse*)_generateResponseInContext:(GSWContext*)context_;
-(id)validateValue:(id*)valuePtr_
forKey:(id)key_;
+(id)validateValue:(id*)valuePtr_
forKey:(id)key_;
@end
//====================================================================
@interface GSWComponent (GSWComponentL)
-(NSString*)stringForKey:(id)key_
inTableNamed:(NSString*)name_
withDefaultValue:(NSString*)defaultValue_;
//NDFN
-(NSDictionary*)stringsTableNamed:(NSString*)name_;
//NDFN
-(NSArray*)stringsTableArrayNamed:(NSString*)name_;
-(NSString*)urlForResourceNamed:(NSString*)name_
ofType:(NSString*)extension_;
-(NSString*)_urlForResourceNamed:(NSString*)name_
ofType:(NSString*)extension_;
-(NSString*)pathForResourceNamed:(NSString*)name_
ofType:(NSString*)extension_;
//NDFN
-(NSString*)pathForComponentResourceNamed:(NSString*)name_
ofType:(NSString*)type_;
//NDFN
-(NSString*)stringForKey:(id)key_
inTableNamed:(NSString*)name_
withDefaultValue:(NSString*)defaultValue_
inFramework:(NSString*)frameworkName_;
//NDFN
-(NSDictionary*)stringsTableNamed:(NSString*)name_
inFramework:(NSString*)frameworkName_;
//NDFN
-(NSArray*)stringsTableArrayNamed:(NSString*)name_
inFramework:(NSString*)frameworkName_;
//NDFN
-(NSString*)urlForResourceNamed:(NSString*)name_
ofType:(NSString*)extension_
inFramework:(NSString*)frameworkName_;
//NDFN
-(NSString*)pathForResourceNamed:(NSString*)name_
ofType:(NSString*)extension_
inFramework:(NSString*)frameworkName_;
@end
//====================================================================
@interface GSWComponent (GSWTemplateParsing)
+(GSWElement*)templateWithHTMLString:(NSString *)htmlString_
declarationString:(NSString *)declarationString_
languages:(NSArray*)languages_;
@end
//====================================================================
@interface GSWComponent (GSWTemplateParsingOldFn)
+(GSWElement*)templateWithHTMLString:(NSString *)htmlString_
declarationString:(NSString*)declarationString_;//old
@end
//====================================================================
@interface GSWComponent (GSWActionResults) <GSWActionResults>
- (GSWResponse*)generateResponse;
@end
//====================================================================
@interface GSWComponent (GSWStatistics)
-(NSString*)descriptionForResponse:(GSWResponse*)response_
inContext:(GSWContext*)context_;
@end
//====================================================================
@interface GSWComponent (GSWComponentClassA)
+(void)_registerObserver:(id)_observer;
@end
//====================================================================
@interface GSWComponent (GSWVerifyAPI)
-(void)validateAPIAssociations;
@end
#endif //_GSWComponent_h__