mirror of
https://github.com/gnustep/libs-gdl2.git
synced 2025-04-22 04:40:44 +00:00
Replaced tabs with spaces throughout the DBModeler sub-project.
* DBModeler/AdaptorsPanel.m, DBModeler/AttributeCell.m, DBModeler/ConsistencyChecker.m, DBModeler/DefaultColumnProvider.m, DBModeler/DiagramView.m, DBModeler/EOAdditions.m, DBModeler/EntityView.m, DBModeler/GNUmakefile, DBModeler/KVDataSource.m, DBModeler/MainModelEditor.h, DBModeler/MainModelEditor.m, DBModeler/ModelerAttributeEditor.m, DBModeler/ModelerEntityEditor.h, DBModeler/ModelerEntityEditor.m, DBModeler/ModelerTableEmbedibleEditor.h, DBModeler/ModelerTableEmbedibleEditor.m, DBModeler/NSView+Additions.m, DBModeler/Preferences.m, DBModeler/SQLGenerator.m, DBModeler/Inspectors/AdvancedEntityInspector.m, DBModeler/Inspectors/AttributeInspector.h, DBModeler/Inspectors/AttributeInspector.m, DBModeler/Inspectors/RelationshipInspector.h, DBModeler/Inspectors/RelationshipInspector.m White-space clean-up. Replaced tabs with spaces. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@26556 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
3011c2e575
commit
957d6607e0
25 changed files with 731 additions and 708 deletions
17
ChangeLog
17
ChangeLog
|
@ -1,3 +1,20 @@
|
|||
2008-05-23 Blake Nicholson <blaken@umich.edu>
|
||||
|
||||
* DBModeler/AdaptorsPanel.m, DBModeler/AttributeCell.m,
|
||||
DBModeler/ConsistencyChecker.m, DBModeler/DefaultColumnProvider.m,
|
||||
DBModeler/DiagramView.m, DBModeler/EOAdditions.m, DBModeler/EntityView.m,
|
||||
DBModeler/GNUmakefile, DBModeler/KVDataSource.m,
|
||||
DBModeler/MainModelEditor.h, DBModeler/MainModelEditor.m,
|
||||
DBModeler/ModelerAttributeEditor.m, DBModeler/ModelerEntityEditor.h,
|
||||
DBModeler/ModelerEntityEditor.m, DBModeler/ModelerTableEmbedibleEditor.h,
|
||||
DBModeler/ModelerTableEmbedibleEditor.m, DBModeler/NSView+Additions.m,
|
||||
DBModeler/Preferences.m, DBModeler/SQLGenerator.m,
|
||||
DBModeler/Inspectors/AdvancedEntityInspector.m,
|
||||
DBModeler/Inspectors/AttributeInspector.h,
|
||||
DBModeler/Inspectors/AttributeInspector.m,
|
||||
DBModeler/Inspectors/RelationshipInspector.h,
|
||||
DBModeler/Inspectors/RelationshipInspector.m: Replaced tabs with spaces.
|
||||
|
||||
2008-05-22 Blake Nicholson <blaken@umich.edu>
|
||||
|
||||
* DBModeler/ModelerEntityEditor.m, DBModeler/ModelerAttributeEditor.m,
|
||||
|
|
|
@ -99,11 +99,11 @@ static NSArray *_adaptorNames;
|
|||
fr2 = [btn_cancel frame];
|
||||
|
||||
fr1.size.width = fr2.size.width = fr1.size.width > fr2.size.width
|
||||
? fr1.size.width
|
||||
: fr2.size.width;
|
||||
? fr1.size.width
|
||||
: fr2.size.width;
|
||||
fr1.size.height = fr2.size.height = fr1.size.height > fr2.size.height
|
||||
? fr1.size.height
|
||||
: fr2.size.height;
|
||||
? fr1.size.height
|
||||
: fr2.size.height;
|
||||
fr2.origin.x = NSMaxX(fr1) + 8;
|
||||
|
||||
[btn_ok setFrame:fr1];
|
||||
|
@ -160,8 +160,8 @@ static NSArray *_adaptorNames;
|
|||
|
||||
- (void)browser:(NSBrowser*)sender
|
||||
willDisplayCell:(NSBrowserCell*)cell
|
||||
atRow:(int)row
|
||||
column:(int)column
|
||||
atRow:(int)row
|
||||
column:(int)column
|
||||
{
|
||||
[cell setLeaf:YES];
|
||||
[cell setTitle: [_adaptorNames objectAtIndex:row]];
|
||||
|
|
|
@ -127,7 +127,6 @@
|
|||
|
||||
- (void) drawWithFrame:(NSRect)frame inView:(NSView *)view
|
||||
{
|
||||
|
||||
[name drawWithFrame:NSMakeRect(frame.origin.x, frame.origin.y, sz.width, sz.height) inView:view];
|
||||
|
||||
if (isKey)
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
#endif
|
||||
|
||||
#define MY_PRETTY NSMutableAttributedString \
|
||||
mutableAttributedStringWithBoldSubstitutionsWithFormat
|
||||
mutableAttributedStringWithBoldSubstitutionsWithFormat
|
||||
|
||||
static NSMutableArray *successText;
|
||||
static EOModelerDocument *doc;
|
||||
|
@ -51,22 +51,22 @@ static EOModelerDocument *doc;
|
|||
+(void) initialize
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
addObserver:self
|
||||
selector:@selector(beginConsistencyCheck:)
|
||||
name:EOMCheckConsistencyBeginNotification
|
||||
object:nil];
|
||||
addObserver:self
|
||||
selector:@selector(beginConsistencyCheck:)
|
||||
name:EOMCheckConsistencyBeginNotification
|
||||
object:nil];
|
||||
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
addObserver:self
|
||||
selector:@selector(endConsistencyCheck:)
|
||||
name:EOMCheckConsistencyEndNotification
|
||||
object:nil];
|
||||
addObserver:self
|
||||
selector:@selector(endConsistencyCheck:)
|
||||
name:EOMCheckConsistencyEndNotification
|
||||
object:nil];
|
||||
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
addObserver:self
|
||||
selector:@selector(modelConsistencyCheck:)
|
||||
name:EOMCheckConsistencyForModelNotification
|
||||
object:nil];
|
||||
addObserver:self
|
||||
selector:@selector(modelConsistencyCheck:)
|
||||
name:EOMCheckConsistencyForModelNotification
|
||||
object:nil];
|
||||
|
||||
successText = [[NSMutableArray alloc] initWithCapacity:8];
|
||||
}
|
||||
|
@ -115,74 +115,74 @@ static BOOL isInvalid(NSString *str)
|
|||
unsigned j, d;
|
||||
|
||||
for (j = 0, d = [arr count]; j < d; j++)
|
||||
{
|
||||
EOAttribute *attrib = [arr objectAtIndex:j];
|
||||
NSString *className = [attrib valueClassName];
|
||||
{
|
||||
EOAttribute *attrib = [arr objectAtIndex:j];
|
||||
NSString *className = [attrib valueClassName];
|
||||
|
||||
if ([[attrib className] isEqualToString:@"NSNumber"])
|
||||
{
|
||||
if (isInvalid([attrib externalType]))
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: %@ of type 'NSNumber has no external type\n",[(EOAttribute *)attrib name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
|
||||
/* TODO check whether NSCalendarDate/NSData require valueFactory...*/
|
||||
if ((!isInvalid(className))
|
||||
&& (![className isEqual:@"NSString"]
|
||||
&& ![className isEqual:@"NSNumber"]
|
||||
&& ![className isEqual:@"NSDecimalNumber"]
|
||||
&& ![className isEqual:@"NSDate"]
|
||||
&& ![className isEqual:@"NSData"])
|
||||
&& (isInvalid([attrib valueFactoryMethodName])))
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: attribute '%@' of type '%@' requires a value factory method name\n",[(EOAttribute *)attrib name], className]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
if ([[attrib className] isEqualToString:@"NSNumber"])
|
||||
{
|
||||
if (isInvalid([attrib externalType]))
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: %@ of type 'NSNumber has no external type\n",[(EOAttribute *)attrib name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
|
||||
/* TODO check whether NSCalendarDate/NSData require valueFactory...*/
|
||||
if ((!isInvalid(className))
|
||||
&& (![className isEqual:@"NSString"]
|
||||
&& ![className isEqual:@"NSNumber"]
|
||||
&& ![className isEqual:@"NSDecimalNumber"]
|
||||
&& ![className isEqual:@"NSDate"]
|
||||
&& ![className isEqual:@"NSData"])
|
||||
&& (isInvalid([attrib valueFactoryMethodName])))
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: attribute '%@' of type '%@' requires a value factory method name\n",[(EOAttribute *)attrib name], className]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
/* relationship primary key propagation */
|
||||
arr = [entity relationships];
|
||||
for (j = 0, d = [arr count]; j < d; j++)
|
||||
{
|
||||
EORelationship *rel = [arr objectAtIndex:j];
|
||||
|
||||
if ([rel propagatesPrimaryKey] == YES)
|
||||
{
|
||||
NSArray *attribs = [rel sourceAttributes];
|
||||
NSArray *pkAttribs = [[rel entity] primaryKeyAttributes];
|
||||
unsigned k, e;
|
||||
id pkey;
|
||||
BOOL ok = YES;
|
||||
EORelationship *rel = [arr objectAtIndex:j];
|
||||
|
||||
if ([rel propagatesPrimaryKey] == YES)
|
||||
{
|
||||
NSArray *attribs = [rel sourceAttributes];
|
||||
NSArray *pkAttribs = [[rel entity] primaryKeyAttributes];
|
||||
unsigned k, e;
|
||||
id pkey;
|
||||
BOOL ok = YES;
|
||||
|
||||
for (k = 0, e = [pkAttribs count]; ok == YES && k < e; i++)
|
||||
{
|
||||
pkey = [pkAttribs objectAtIndex:k];
|
||||
ok = [attribs containsObject:pkey];
|
||||
}
|
||||
|
||||
if (ok == NO)
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: relationship '%@' propagates primary key but its source attributes does not contain the source entity's primary key attributes\n",[(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
|
||||
ok = YES;
|
||||
attribs = [rel destinationAttributes];
|
||||
pkAttribs = [[rel destinationEntity] primaryKeyAttributes];
|
||||
|
||||
for (k = 0, e = [pkAttribs count]; ok == YES && k < e; i++)
|
||||
{
|
||||
pkey = [pkAttribs objectAtIndex:k];
|
||||
ok = [attribs containsObject:pkey];
|
||||
}
|
||||
|
||||
if (ok == NO)
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"Fail: relationship '%@' propagates primary key but its destination attributes does not contain the destination entity's primary key attributes\n",[(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
for (k = 0, e = [pkAttribs count]; ok == YES && k < e; i++)
|
||||
{
|
||||
pkey = [pkAttribs objectAtIndex:k];
|
||||
ok = [attribs containsObject:pkey];
|
||||
}
|
||||
|
||||
if (ok == NO)
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: relationship '%@' propagates primary key but its source attributes does not contain the source entity's primary key attributes\n",[(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
|
||||
ok = YES;
|
||||
attribs = [rel destinationAttributes];
|
||||
pkAttribs = [[rel destinationEntity] primaryKeyAttributes];
|
||||
|
||||
for (k = 0, e = [pkAttribs count]; ok == YES && k < e; i++)
|
||||
{
|
||||
pkey = [pkAttribs objectAtIndex:k];
|
||||
ok = [attribs containsObject:pkey];
|
||||
}
|
||||
|
||||
if (ok == NO)
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"Fail: relationship '%@' propagates primary key but its destination attributes does not contain the destination entity's primary key attributes\n",[(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (flag == YES)
|
||||
|
@ -213,49 +213,49 @@ static BOOL isInvalid(NSString *str)
|
|||
|
||||
for (j = 0, d = [subEnts count]; j < d; j++)
|
||||
{
|
||||
EOEntity *subEnt = [subEnts objectAtIndex:j];
|
||||
EOEntity *subEnt = [subEnts objectAtIndex:j];
|
||||
NSArray *arr = [ent attributes];
|
||||
NSArray *subArr = [subEnt attributes];
|
||||
unsigned k, e;
|
||||
|
||||
for (k = 0, e = [arr count]; k < e; k++)
|
||||
NSArray *subArr = [subEnt attributes];
|
||||
unsigned k, e;
|
||||
|
||||
for (k = 0, e = [arr count]; k < e; k++)
|
||||
{
|
||||
EOAttribute *attrib = [arr objectAtIndex:k];
|
||||
|
||||
if (![subArr containsObject:[(EOAttribute *)attrib name]])
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"FAIL: sub entity '%@' missing parent's '%@' attribute",[(EOEntity *)subEnt name], [(EOAttribute *)attrib name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
EOAttribute *attrib = [arr objectAtIndex:k];
|
||||
|
||||
if (![subArr containsObject:[(EOAttribute *)attrib name]])
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"FAIL: sub entity '%@' missing parent's '%@' attribute",[(EOEntity *)subEnt name], [(EOAttribute *)attrib name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
|
||||
arr = [ent relationships];
|
||||
for (k = 0, e = [arr count]; k < e; k++)
|
||||
{
|
||||
EORelationship *rel = [arr objectAtIndex:k];
|
||||
EORelationship *subRel = [subEnt relationshipNamed:[(EORelationship *)rel name]];
|
||||
|
||||
if (!subRel || ![[rel definition] isEqual:[subRel definition]])
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"FAIL: sub entity '%@' missing relationship '%@' or definitions do not match", [(EOEntity *)subEnt name], [(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
arr = [ent relationships];
|
||||
for (k = 0, e = [arr count]; k < e; k++)
|
||||
{
|
||||
EORelationship *rel = [arr objectAtIndex:k];
|
||||
EORelationship *subRel = [subEnt relationshipNamed:[(EORelationship *)rel name]];
|
||||
|
||||
if (!subRel || ![[rel definition] isEqual:[subRel definition]])
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"FAIL: sub entity '%@' missing relationship '%@' or definitions do not match", [(EOEntity *)subEnt name], [(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
|
||||
arr = [ent primaryKeyAttributes];
|
||||
subArr = [subEnt primaryKeyAttributes];
|
||||
if (![arr isEqual:subArr])
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"FAIL: sub entity '%@' and parent entities primary keys do not match", [(EOEntity *)subEnt name]]);
|
||||
flag = NO;
|
||||
}
|
||||
if ([[subEnt externalName] isEqual:[ent externalName]]
|
||||
&& (![subEnt restrictingQualifier] || ![ent restrictingQualifier]))
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"FAIL: sub entity '%@' and parent entity in same table must contain a restricting qualifier", [(EOEntity *)subEnt name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
arr = [ent primaryKeyAttributes];
|
||||
subArr = [subEnt primaryKeyAttributes];
|
||||
if (![arr isEqual:subArr])
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"FAIL: sub entity '%@' and parent entities primary keys do not match", [(EOEntity *)subEnt name]]);
|
||||
flag = NO;
|
||||
}
|
||||
if ([[subEnt externalName] isEqual:[ent externalName]]
|
||||
&& (![subEnt restrictingQualifier] || ![ent restrictingQualifier]))
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"FAIL: sub entity '%@' and parent entity in same table must contain a restricting qualifier", [(EOEntity *)subEnt name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (flag == YES)
|
||||
|
@ -278,67 +278,66 @@ static BOOL isInvalid(NSString *str)
|
|||
unsigned j, d;
|
||||
|
||||
for (j = 0, d = [arr count]; j < d; j++)
|
||||
{
|
||||
id rel = [arr objectAtIndex:j];
|
||||
|
||||
if (![[rel joins] count])
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: relationship '%@' does not contain a join\n", [(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
|
||||
if ([rel isToMany] == NO)
|
||||
{
|
||||
id rel = [arr objectAtIndex:j];
|
||||
|
||||
if (![[rel joins] count])
|
||||
{
|
||||
NSArray *pkAttribs = [[rel destinationEntity]
|
||||
primaryKeyAttributes];
|
||||
NSArray *attribs = [rel destinationAttributes];
|
||||
|
||||
if (![pkAttribs isEqual:attribs])
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"Fail: destination attributes of relationship '%@' are not the destination entity primary keys\n",[(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
pass(NO,[MY_PRETTY: @"Fail: relationship '%@' does not contain a join\n", [(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
|
||||
if ([rel propagatesPrimaryKey])
|
||||
{
|
||||
NSArray *pkAttribs = [[rel entity] primaryKeyAttributes];
|
||||
NSArray *attribs = [rel sourceAttributes];
|
||||
unsigned k, e;
|
||||
BOOL ok = YES;
|
||||
if ([rel isToMany] == NO)
|
||||
{
|
||||
NSArray *pkAttribs = [[rel destinationEntity] primaryKeyAttributes];
|
||||
NSArray *attribs = [rel destinationAttributes];
|
||||
|
||||
if (![pkAttribs isEqual:attribs])
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"Fail: destination attributes of relationship '%@' are not the destination entity primary keys\n",[(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
|
||||
for (k = 0, e = [pkAttribs count]; ok == YES && k < e; k++)
|
||||
{
|
||||
ok = [attribs containsObject: [pkAttribs objectAtIndex:k]];
|
||||
}
|
||||
if ([rel propagatesPrimaryKey])
|
||||
{
|
||||
NSArray *pkAttribs = [[rel entity] primaryKeyAttributes];
|
||||
NSArray *attribs = [rel sourceAttributes];
|
||||
unsigned k, e;
|
||||
BOOL ok = YES;
|
||||
|
||||
if (ok == NO)
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"Fail: relationship '%@' propagates primary keys but does not contain source entities primary key attributes\n", [(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
|
||||
pkAttribs = [[rel destinationEntity] primaryKeyAttributes];
|
||||
attribs = [rel destinationAttributes];
|
||||
for (k = 0, e = [pkAttribs count]; ok == YES && k < e; k++)
|
||||
{
|
||||
ok = [attribs containsObject: [pkAttribs objectAtIndex:k]];
|
||||
}
|
||||
|
||||
for (k = 0, e = [pkAttribs count]; ok == YES && k < e; k++)
|
||||
{
|
||||
ok = [attribs containsObject: [pkAttribs objectAtIndex:k]];
|
||||
}
|
||||
if (ok == NO)
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"Fail: relationship '%@' propagates primary keys but does not contain source entities primary key attributes\n", [(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
|
||||
pkAttribs = [[rel destinationEntity] primaryKeyAttributes];
|
||||
attribs = [rel destinationAttributes];
|
||||
|
||||
if (ok == NO)
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"Fail: relationship '%@' propagates primary keys but does not contain destination entities primary key attributes\n", [(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
|
||||
if ([[rel inverseRelationship] propagatesPrimaryKey])
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: both relationship '%@' and inverse relationship '%@' should not propagate primary keys\n", [(EORelationship *)rel name], [(EORelationship *)[rel inverseRelationship] name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
}
|
||||
for (k = 0, e = [pkAttribs count]; ok == YES && k < e; k++)
|
||||
{
|
||||
ok = [attribs containsObject: [pkAttribs objectAtIndex:k]];
|
||||
}
|
||||
|
||||
if (ok == NO)
|
||||
{
|
||||
pass(NO, [MY_PRETTY: @"Fail: relationship '%@' propagates primary keys but does not contain destination entities primary key attributes\n", [(EORelationship *)rel name]]);
|
||||
flag = NO;
|
||||
}
|
||||
|
||||
if ([[rel inverseRelationship] propagatesPrimaryKey])
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: both relationship '%@' and inverse relationship '%@' should not propagate primary keys\n", [(EORelationship *)rel name], [(EORelationship *)[rel inverseRelationship] name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (flag == YES)
|
||||
pass(YES, [MY_PRETTY: @"Success: relationship check\n"]);
|
||||
|
@ -356,10 +355,10 @@ static BOOL isInvalid(NSString *str)
|
|||
NSArray *arr = [entity primaryKeyAttributes];
|
||||
|
||||
if (![arr count])
|
||||
{
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: Entity '%@' does not have a primary key.\n", [(EOEntity *)entity name]]);
|
||||
flag = NO;
|
||||
}
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
if (flag == YES)
|
||||
pass(YES, [MY_PRETTY:@"Success: primary key check\n"]);
|
||||
|
@ -377,31 +376,31 @@ static BOOL isInvalid(NSString *str)
|
|||
EOEntity *entity = [ents objectAtIndex:i];
|
||||
NSString *extName = [entity externalName];
|
||||
if (isInvalid(extName))
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: Entity '%@' does not have an external name\n",
|
||||
[(EOEntity *)entity name]]);
|
||||
flag = NO;
|
||||
}
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: Entity '%@' does not have an external name\n",
|
||||
[(EOEntity *)entity name]]);
|
||||
flag = NO;
|
||||
}
|
||||
arr = [entity attributes];
|
||||
for (j = 0, d = [arr count]; j<d; j++)
|
||||
{
|
||||
EOAttribute *attrib = [arr objectAtIndex:j];
|
||||
|
||||
|
||||
extName = [attrib columnName];
|
||||
if (isInvalid(extName))
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: Attribute '%@' does not have an external name\n",
|
||||
[(EOAttribute *)attrib name]]);
|
||||
flag = NO;
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: Attribute '%@' does not have an external name\n",
|
||||
[(EOAttribute *)attrib name]]);
|
||||
flag = NO;
|
||||
}
|
||||
|
||||
extName = [attrib valueClassName];
|
||||
if (isInvalid(extName))
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: Attribute '%@' does not have a value class name\n", [(EOAttribute *)attrib name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
extName = [attrib valueClassName];
|
||||
if (isInvalid(extName))
|
||||
{
|
||||
pass(NO,[MY_PRETTY: @"Fail: Attribute '%@' does not have a value class name\n", [(EOAttribute *)attrib name]]);
|
||||
flag = NO;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (flag == YES)
|
||||
pass(YES, [MY_PRETTY: @"Success: external name check\n"]);
|
||||
|
|
|
@ -69,37 +69,37 @@ struct column_info {
|
|||
};
|
||||
|
||||
static struct column_info attribute_columns[] = {
|
||||
{@"isPrimaryKey", @"Primary key", YES},
|
||||
{@"isClassProperty", @"Class property", YES},
|
||||
{@"allowNull", @"Allows null", YES},
|
||||
{@"isUsedForLocking", @"Locking", YES},
|
||||
{@"name", @"Name", YES},
|
||||
{@"columnName", @"Column name", YES},
|
||||
{@"valueClassName", @"Value class name", YES},
|
||||
{@"externalType", @"External Type", YES},
|
||||
{@"definition", @"Definition", NO},
|
||||
{@"precision", @"Precision", NO},
|
||||
{@"readFormat", @"Read format", NO},
|
||||
{@"scale", @"Scale", NO},
|
||||
{@"valueType", @"Value type", NO},
|
||||
{@"width", @"Width", YES},
|
||||
{@"writeFormat", @"Write format", NO}
|
||||
{@"isPrimaryKey", @"Primary key", YES},
|
||||
{@"isClassProperty", @"Class property", YES},
|
||||
{@"allowNull", @"Allows null", YES},
|
||||
{@"isUsedForLocking", @"Locking", YES},
|
||||
{@"name", @"Name", YES},
|
||||
{@"columnName", @"Column name", YES},
|
||||
{@"valueClassName", @"Value class name", YES},
|
||||
{@"externalType", @"External Type", YES},
|
||||
{@"definition", @"Definition", NO},
|
||||
{@"precision", @"Precision", NO},
|
||||
{@"readFormat", @"Read format", NO},
|
||||
{@"scale", @"Scale", NO},
|
||||
{@"valueType", @"Value type", NO},
|
||||
{@"width", @"Width", YES},
|
||||
{@"writeFormat", @"Write format", NO}
|
||||
};
|
||||
|
||||
static struct column_info relationship_columns[]= {
|
||||
{@"isClassProperty", @"Class property", YES},
|
||||
{@"definition", @"Definition", NO},
|
||||
{@"name", @"Name", YES},
|
||||
{@"destinationEntity.name", @"Destination Entity", YES}
|
||||
|
||||
{@"isClassProperty", @"Class property", YES},
|
||||
{@"definition", @"Definition", NO},
|
||||
{@"name", @"Name", YES},
|
||||
{@"destinationEntity.name", @"Destination Entity", YES}
|
||||
|
||||
};
|
||||
|
||||
static struct column_info entity_columns[] = {
|
||||
{@"name", @"Name", YES},
|
||||
{@"className", @"Class name", YES},
|
||||
{@"externalName", @"External name", YES},
|
||||
{@"externalQuery", @"External query", NO},
|
||||
{@"parentEntity.name", @"Parent", NO}
|
||||
{@"name", @"Name", YES},
|
||||
{@"className", @"Class name", YES},
|
||||
{@"externalName", @"External name", YES},
|
||||
{@"externalQuery", @"External query", NO},
|
||||
{@"parentEntity.name", @"Parent", NO}
|
||||
|
||||
};
|
||||
|
||||
|
@ -108,13 +108,13 @@ static struct column_info entity_columns[] = {
|
|||
* which looks like
|
||||
{
|
||||
Class = {
|
||||
columnName1 = "aspectKey1";
|
||||
columnName2 = "aspectKey2";
|
||||
};
|
||||
|
||||
columnName1 = "aspectKey1";
|
||||
columnName2 = "aspectKey2";
|
||||
};
|
||||
|
||||
Class2 = {
|
||||
otherColumnName = "otherAspectKey";
|
||||
};
|
||||
otherColumnName = "otherAspectKey";
|
||||
};
|
||||
}
|
||||
*/
|
||||
void registerColumnsForClass(struct column_info columns[], int count, Class aClass,NSMutableArray *defaultColumnsArray)
|
||||
|
@ -134,21 +134,21 @@ void registerColumnsForClass(struct column_info columns[], int count, Class aCla
|
|||
objects[i] = columns[i].key;
|
||||
keys[i] = columns[i].name;
|
||||
if (columns[i].isDefault == YES)
|
||||
{
|
||||
[defaultColumnsArray addObject:keys[i]];
|
||||
}
|
||||
{
|
||||
[defaultColumnsArray addObject:keys[i]];
|
||||
}
|
||||
}
|
||||
tmp = [NSDictionary dictionaryWithObjects:objects
|
||||
forKeys:keys
|
||||
count:count];
|
||||
forKeys:keys
|
||||
count:count];
|
||||
[EOMApp registerColumnNames: [tmp allKeys]
|
||||
forClass: aClass
|
||||
provider:_sharedDefaultColumnProvider];
|
||||
forClass: aClass
|
||||
provider:_sharedDefaultColumnProvider];
|
||||
NSZoneFree([_sharedDefaultColumnProvider zone], objects);
|
||||
NSZoneFree([_sharedDefaultColumnProvider zone], keys);
|
||||
|
||||
[_aspectsAndKeys setObject: tmp
|
||||
forKey: aClass];
|
||||
forKey: aClass];
|
||||
}
|
||||
|
||||
+ (void)initialize
|
||||
|
@ -161,17 +161,17 @@ void registerColumnsForClass(struct column_info columns[], int count, Class aCla
|
|||
_sharedDefaultColumnProvider = [[self alloc] init];
|
||||
_aspectsAndKeys = [[NSMutableDictionary alloc] init];
|
||||
registerColumnsForClass(attribute_columns,
|
||||
DICTSIZE(attribute_columns),
|
||||
[EOAttribute class],
|
||||
DefaultAttributeColumns);
|
||||
DICTSIZE(attribute_columns),
|
||||
[EOAttribute class],
|
||||
DefaultAttributeColumns);
|
||||
registerColumnsForClass(entity_columns,
|
||||
DICTSIZE(entity_columns),
|
||||
[EOEntity class],
|
||||
DefaultEntityColumns);
|
||||
DICTSIZE(entity_columns),
|
||||
[EOEntity class],
|
||||
DefaultEntityColumns);
|
||||
registerColumnsForClass(relationship_columns,
|
||||
DICTSIZE(relationship_columns),
|
||||
[EORelationship class],
|
||||
DefaultRelationshipColumns);
|
||||
DICTSIZE(relationship_columns),
|
||||
[EORelationship class],
|
||||
DefaultRelationshipColumns);
|
||||
}
|
||||
|
||||
- (void) setupTitleForColumn:(NSTableColumn *)tc named:(NSString *)name
|
||||
|
@ -267,14 +267,14 @@ void registerColumnsForClass(struct column_info columns[], int count, Class aCla
|
|||
|
||||
- (void)initColumn:(NSTableColumn *)tc
|
||||
class:(Class)class
|
||||
name:(NSString *)columnName
|
||||
name:(NSString *)columnName
|
||||
displayGroup:(EODisplayGroup *)displayGroup
|
||||
document:(EOModelerDocument *)doc
|
||||
{
|
||||
EOColumnAssociation *association;
|
||||
NSCell *cell;
|
||||
NSString *aspectKey;
|
||||
NSString *aspect;
|
||||
NSCell *cell;
|
||||
NSString *aspectKey;
|
||||
NSString *aspect;
|
||||
|
||||
aspectKey = [[_aspectsAndKeys objectForKey:class] objectForKey:columnName];
|
||||
aspect = @"value";
|
||||
|
|
|
@ -206,173 +206,173 @@ int sortSubviews(id view1, id view2, void *context)
|
|||
|
||||
for (j = 0, d = [rels count]; j < d; j++)
|
||||
{
|
||||
EORelationship *rel = [rels objectAtIndex:j];
|
||||
EOEntity *dest = [rel destinationEntity];
|
||||
id srcName = [ent name];
|
||||
id destName = [dest name];
|
||||
EntityView *from = [_shownEntities objectForKey:srcName];
|
||||
EntityView *to = [_shownEntities objectForKey:destName];
|
||||
NSArray *srcAttribs = [rel sourceAttributes];
|
||||
NSArray *destAttribs = [rel destinationAttributes];
|
||||
int k, e;
|
||||
for (k = 0, e = [srcAttribs count]; k < e; k++)
|
||||
{
|
||||
id sAttrib = [srcAttribs objectAtIndex:k];
|
||||
id dAttrib = [destAttribs objectAtIndex:k];
|
||||
int sIdx = [[ent attributes] indexOfObject:sAttrib];
|
||||
int dIdx = [[dest attributes] indexOfObject:dAttrib];
|
||||
NSRect fromRect = [from attributeRectAtRow:sIdx];
|
||||
NSRect toRect = [to attributeRectAtRow:dIdx];
|
||||
NSRect fromViewFrame = [from frame];
|
||||
NSRect toViewFrame = [to frame];
|
||||
NSPoint midPoint;
|
||||
NSPoint tmp;
|
||||
float arrowOffset;
|
||||
NSBezierPath *path = [NSBezierPath bezierPath];
|
||||
BOOL fromRight;
|
||||
BOOL toRight;
|
||||
EORelationship *rel = [rels objectAtIndex:j];
|
||||
EOEntity *dest = [rel destinationEntity];
|
||||
id srcName = [ent name];
|
||||
id destName = [dest name];
|
||||
EntityView *from = [_shownEntities objectForKey:srcName];
|
||||
EntityView *to = [_shownEntities objectForKey:destName];
|
||||
NSArray *srcAttribs = [rel sourceAttributes];
|
||||
NSArray *destAttribs = [rel destinationAttributes];
|
||||
int k, e;
|
||||
for (k = 0, e = [srcAttribs count]; k < e; k++)
|
||||
{
|
||||
id sAttrib = [srcAttribs objectAtIndex:k];
|
||||
id dAttrib = [destAttribs objectAtIndex:k];
|
||||
int sIdx = [[ent attributes] indexOfObject:sAttrib];
|
||||
int dIdx = [[dest attributes] indexOfObject:dAttrib];
|
||||
NSRect fromRect = [from attributeRectAtRow:sIdx];
|
||||
NSRect toRect = [to attributeRectAtRow:dIdx];
|
||||
NSRect fromViewFrame = [from frame];
|
||||
NSRect toViewFrame = [to frame];
|
||||
NSPoint midPoint;
|
||||
NSPoint tmp;
|
||||
float arrowOffset;
|
||||
NSBezierPath *path = [NSBezierPath bezierPath];
|
||||
BOOL fromRight;
|
||||
BOOL toRight;
|
||||
|
||||
[path setLineWidth:2];
|
||||
[path setLineWidth:2];
|
||||
|
||||
fromRect.origin.y += fromViewFrame.origin.y;
|
||||
toRect.origin.y += toViewFrame.origin.y;
|
||||
|
||||
/* which side of the EntityView the arrow line will be connecting
|
||||
* to, for the source and destination entities */
|
||||
fromRight = (fromViewFrame.origin.x - 40 < toViewFrame.origin.x + toViewFrame.size.width);
|
||||
toRight = (toViewFrame.origin.x - 40 < fromViewFrame.origin.x + fromViewFrame.size.width);
|
||||
|
||||
if (fromRight)
|
||||
{
|
||||
fromRect.origin.x = fromViewFrame.origin.x + fromViewFrame.size.width + 5;
|
||||
}
|
||||
else
|
||||
{
|
||||
fromRect.origin.x = fromViewFrame.origin.x - 5;
|
||||
}
|
||||
|
||||
if (toRight)
|
||||
{
|
||||
toRect.origin.x = toViewFrame.origin.x + toViewFrame.size.width;
|
||||
toRect.origin.x += 5;
|
||||
/* <- */
|
||||
arrowOffset = -5.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
toRect.origin.x = toViewFrame.origin.x;
|
||||
toRect.origin.x -= 5;
|
||||
/* -> */
|
||||
arrowOffset = 5.0;
|
||||
}
|
||||
fromRect.origin.y += fromViewFrame.origin.y;
|
||||
toRect.origin.y += toViewFrame.origin.y;
|
||||
|
||||
/* which side of the EntityView the arrow line will be connecting
|
||||
* to, for the source and destination entities */
|
||||
fromRight = (fromViewFrame.origin.x - 40 < toViewFrame.origin.x + toViewFrame.size.width);
|
||||
toRight = (toViewFrame.origin.x - 40 < fromViewFrame.origin.x + fromViewFrame.size.width);
|
||||
|
||||
if (fromRight)
|
||||
{
|
||||
fromRect.origin.x = fromViewFrame.origin.x + fromViewFrame.size.width + 5;
|
||||
}
|
||||
else
|
||||
{
|
||||
fromRect.origin.x = fromViewFrame.origin.x - 5;
|
||||
}
|
||||
|
||||
if (toRight)
|
||||
{
|
||||
toRect.origin.x = toViewFrame.origin.x + toViewFrame.size.width;
|
||||
toRect.origin.x += 5;
|
||||
/* <- */
|
||||
arrowOffset = -5.0;
|
||||
}
|
||||
else
|
||||
{
|
||||
toRect.origin.x = toViewFrame.origin.x;
|
||||
toRect.origin.x -= 5;
|
||||
/* -> */
|
||||
arrowOffset = 5.0;
|
||||
}
|
||||
|
||||
fromRect.origin.y = NSMidY(fromRect);
|
||||
toRect.origin.y = NSMidY(toRect);
|
||||
|
||||
/* every line segment is drawn forwards and backwards so we dont
|
||||
* end up with lightning bolts when filling the arrow */
|
||||
fromRect.origin.y = NSMidY(fromRect);
|
||||
toRect.origin.y = NSMidY(toRect);
|
||||
|
||||
/* every line segment is drawn forwards and backwards so we dont
|
||||
* end up with lightning bolts when filling the arrow */
|
||||
|
||||
/* a recursive relationship...
|
||||
* Don't think they are particularly useful but... */
|
||||
if (fromRect.origin.y == toRect.origin.y
|
||||
&& fromRect.origin.x == toRect.origin.x)
|
||||
{
|
||||
[path moveToPoint:NSMakePoint(toRect.origin.x + 15, toRect.origin.y)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x + 15, toRect.origin.y + 5)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x + 15, toRect.origin.y)];
|
||||
/* a recursive relationship...
|
||||
* Don't think they are particularly useful but... */
|
||||
if (fromRect.origin.y == toRect.origin.y
|
||||
&& fromRect.origin.x == toRect.origin.x)
|
||||
{
|
||||
[path moveToPoint:NSMakePoint(toRect.origin.x + 15, toRect.origin.y)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x + 15, toRect.origin.y + 5)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x + 15, toRect.origin.y)];
|
||||
|
||||
[path moveToPoint:NSMakePoint(toRect.origin.x + 15, toRect.origin.y + 5)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x + 20, toRect.origin.y + 5)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x + 15, toRect.origin.y + 5)];
|
||||
|
||||
[path moveToPoint:NSMakePoint(toRect.origin.x + 20, toRect.origin.y + 5)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x + 20, toRect.origin.y)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x + 20, toRect.origin.y + 5)];
|
||||
}
|
||||
|
||||
if ((fromRight || toRight) && !(fromRight && toRight))
|
||||
{
|
||||
/* a line like... +-----
|
||||
* |
|
||||
* -----+
|
||||
* (from the right side, to the left side or vice versa)
|
||||
*/
|
||||
[path moveToPoint:fromRect.origin];
|
||||
|
||||
midPoint.x = (fromRect.origin.x + toRect.origin.x) / 2;
|
||||
midPoint.y = fromRect.origin.y;
|
||||
[path lineToPoint:midPoint];
|
||||
|
||||
[path lineToPoint:fromRect.origin];
|
||||
[path moveToPoint:midPoint];
|
||||
tmp = midPoint;
|
||||
midPoint.x = (fromRect.origin.x + toRect.origin.x) / 2;
|
||||
midPoint.y = toRect.origin.y;
|
||||
[path lineToPoint:midPoint];
|
||||
[path lineToPoint:tmp];
|
||||
[path moveToPoint:NSMakePoint(toRect.origin.x + 15, toRect.origin.y + 5)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x + 20, toRect.origin.y + 5)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x + 15, toRect.origin.y + 5)];
|
||||
|
||||
[path moveToPoint:NSMakePoint(toRect.origin.x + 20, toRect.origin.y + 5)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x + 20, toRect.origin.y)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x + 20, toRect.origin.y + 5)];
|
||||
}
|
||||
|
||||
if ((fromRight || toRight) && !(fromRight && toRight))
|
||||
{
|
||||
/* a line like... +-----
|
||||
* |
|
||||
* -----+
|
||||
* (from the right side, to the left side or vice versa)
|
||||
*/
|
||||
[path moveToPoint:fromRect.origin];
|
||||
|
||||
midPoint.x = (fromRect.origin.x + toRect.origin.x) / 2;
|
||||
midPoint.y = fromRect.origin.y;
|
||||
[path lineToPoint:midPoint];
|
||||
|
||||
[path lineToPoint:fromRect.origin];
|
||||
[path moveToPoint:midPoint];
|
||||
tmp = midPoint;
|
||||
midPoint.x = (fromRect.origin.x + toRect.origin.x) / 2;
|
||||
midPoint.y = toRect.origin.y;
|
||||
[path lineToPoint:midPoint];
|
||||
[path lineToPoint:tmp];
|
||||
|
||||
[path moveToPoint:midPoint];
|
||||
[path lineToPoint:toRect.origin];
|
||||
[path lineToPoint:midPoint];
|
||||
}
|
||||
else if (fromRight && toRight)
|
||||
{
|
||||
/* need to --+ or -------+ <- joint end or start.
|
||||
* make a line | |
|
||||
* like... -------+ --+ <- joint start or end.
|
||||
* from the right side to the right side.
|
||||
*/
|
||||
|
||||
NSPoint jointStart;
|
||||
NSPoint jointEnd;
|
||||
|
||||
if (toRect.origin.x + toRect.size.width < fromRect.origin.x + fromRect.size.width)
|
||||
{
|
||||
jointStart = NSMakePoint(fromRect.origin.x + 20, fromRect.origin.y);
|
||||
jointEnd = NSMakePoint(fromRect.origin.x + 20, toRect.origin.y);
|
||||
}
|
||||
else
|
||||
{
|
||||
jointStart = NSMakePoint(toRect.origin.x + 20, fromRect.origin.y);
|
||||
jointEnd = NSMakePoint(toRect.origin.x + 20, toRect.origin.y);
|
||||
}
|
||||
[path moveToPoint:fromRect.origin];
|
||||
[path lineToPoint:jointStart];
|
||||
[path lineToPoint:fromRect.origin];
|
||||
|
||||
[path moveToPoint:jointStart];
|
||||
[path lineToPoint:jointEnd];
|
||||
[path lineToPoint:jointStart];
|
||||
|
||||
[path moveToPoint:jointEnd];
|
||||
[path lineToPoint:toRect.origin];
|
||||
[path lineToPoint:jointEnd];
|
||||
}
|
||||
[path moveToPoint:midPoint];
|
||||
[path lineToPoint:toRect.origin];
|
||||
[path lineToPoint:midPoint];
|
||||
}
|
||||
else if (fromRight && toRight)
|
||||
{
|
||||
/* need to --+ or -------+ <- joint end or start.
|
||||
* make a line | |
|
||||
* like... -------+ --+ <- joint start or end.
|
||||
* from the right side to the right side.
|
||||
*/
|
||||
|
||||
NSPoint jointStart;
|
||||
NSPoint jointEnd;
|
||||
|
||||
if (toRect.origin.x + toRect.size.width < fromRect.origin.x + fromRect.size.width)
|
||||
{
|
||||
jointStart = NSMakePoint(fromRect.origin.x + 20, fromRect.origin.y);
|
||||
jointEnd = NSMakePoint(fromRect.origin.x + 20, toRect.origin.y);
|
||||
}
|
||||
else
|
||||
{
|
||||
jointStart = NSMakePoint(toRect.origin.x + 20, fromRect.origin.y);
|
||||
jointEnd = NSMakePoint(toRect.origin.x + 20, toRect.origin.y);
|
||||
}
|
||||
[path moveToPoint:fromRect.origin];
|
||||
[path lineToPoint:jointStart];
|
||||
[path lineToPoint:fromRect.origin];
|
||||
|
||||
[path moveToPoint:jointStart];
|
||||
[path lineToPoint:jointEnd];
|
||||
[path lineToPoint:jointStart];
|
||||
|
||||
[path moveToPoint:jointEnd];
|
||||
[path lineToPoint:toRect.origin];
|
||||
[path lineToPoint:jointEnd];
|
||||
}
|
||||
|
||||
/* draw arrows.. */
|
||||
if ([rel isToMany])
|
||||
{
|
||||
[path moveToPoint:toRect.origin];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x - arrowOffset, toRect.origin.y + arrowOffset)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x - arrowOffset, toRect.origin.y - arrowOffset)];
|
||||
[path lineToPoint:toRect.origin];
|
||||
toRect.origin.x -= arrowOffset;
|
||||
[path moveToPoint:toRect.origin];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x - arrowOffset, toRect.origin.y + arrowOffset)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x - arrowOffset, toRect.origin.y - arrowOffset)];
|
||||
[path lineToPoint:toRect.origin];
|
||||
}
|
||||
else
|
||||
{
|
||||
[path moveToPoint:toRect.origin];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x - arrowOffset, toRect.origin.y + arrowOffset)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x - arrowOffset, toRect.origin.y - arrowOffset)];
|
||||
[path lineToPoint:toRect.origin];
|
||||
}
|
||||
/* draw arrows.. */
|
||||
if ([rel isToMany])
|
||||
{
|
||||
[path moveToPoint:toRect.origin];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x - arrowOffset, toRect.origin.y + arrowOffset)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x - arrowOffset, toRect.origin.y - arrowOffset)];
|
||||
[path lineToPoint:toRect.origin];
|
||||
toRect.origin.x -= arrowOffset;
|
||||
[path moveToPoint:toRect.origin];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x - arrowOffset, toRect.origin.y + arrowOffset)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x - arrowOffset, toRect.origin.y - arrowOffset)];
|
||||
[path lineToPoint:toRect.origin];
|
||||
}
|
||||
else
|
||||
{
|
||||
[path moveToPoint:toRect.origin];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x - arrowOffset, toRect.origin.y + arrowOffset)];
|
||||
[path lineToPoint:NSMakePoint(toRect.origin.x - arrowOffset, toRect.origin.y - arrowOffset)];
|
||||
[path lineToPoint:toRect.origin];
|
||||
}
|
||||
|
||||
[path closePath];
|
||||
[_relationships addObject:path];
|
||||
}
|
||||
[path closePath];
|
||||
[_relationships addObject:path];
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
static inline NSNumber * isClassProperty(id self)
|
||||
{
|
||||
return [NSNumber numberWithBool:
|
||||
[[[self entity] classProperties] containsObject:self]];
|
||||
[[[self entity] classProperties] containsObject:self]];
|
||||
}
|
||||
|
||||
static inline void setIsClassProperty(id self, NSNumber *flag)
|
||||
|
@ -52,22 +52,22 @@ static inline void setIsClassProperty(id self, NSNumber *flag)
|
|||
{
|
||||
if (!props)
|
||||
{
|
||||
if (![[self entity] setClassProperties: [NSArray arrayWithObject:self]])
|
||||
NSLog(@"invalid class property");
|
||||
}
|
||||
if (![[self entity] setClassProperties: [NSArray arrayWithObject:self]])
|
||||
NSLog(@"invalid class property");
|
||||
}
|
||||
else if (![props containsObject:self])
|
||||
{
|
||||
[[self entity] setClassProperties: [props arrayByAddingObject:self]];
|
||||
}
|
||||
[[self entity] setClassProperties: [props arrayByAddingObject:self]];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ([props containsObject:self])
|
||||
{
|
||||
NSMutableArray *newProps = [NSMutableArray arrayWithArray:props];
|
||||
[newProps removeObject: self];
|
||||
[[self entity] setClassProperties: newProps];
|
||||
}
|
||||
{
|
||||
NSMutableArray *newProps = [NSMutableArray arrayWithArray:props];
|
||||
[newProps removeObject: self];
|
||||
[[self entity] setClassProperties: newProps];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -86,26 +86,26 @@ static inline void setIsClassProperty(id self, NSNumber *flag)
|
|||
|
||||
if (isKey)
|
||||
{
|
||||
if (!pka)
|
||||
{
|
||||
[[self entity]
|
||||
setPrimaryKeyAttributes: [NSArray arrayWithObject:self]];
|
||||
}
|
||||
else if (![pka containsObject:self])
|
||||
if (!pka)
|
||||
{
|
||||
[[self entity]
|
||||
setPrimaryKeyAttributes: [pka arrayByAddingObject:self]];
|
||||
}
|
||||
[[self entity]
|
||||
setPrimaryKeyAttributes: [NSArray arrayWithObject:self]];
|
||||
}
|
||||
else if (![pka containsObject:self])
|
||||
{
|
||||
[[self entity]
|
||||
setPrimaryKeyAttributes: [pka arrayByAddingObject:self]];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ([pka containsObject:self])
|
||||
{
|
||||
NSMutableArray *newPks = [NSMutableArray arrayWithArray:pka];
|
||||
[newPks removeObject: self];
|
||||
[[self entity] setPrimaryKeyAttributes: newPks];
|
||||
|
||||
}
|
||||
{
|
||||
NSMutableArray *newPks = [NSMutableArray arrayWithArray:pka];
|
||||
[newPks removeObject: self];
|
||||
[[self entity] setPrimaryKeyAttributes: newPks];
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -139,24 +139,24 @@ static inline void setIsClassProperty(id self, NSNumber *flag)
|
|||
{
|
||||
|
||||
if (la == nil)
|
||||
{
|
||||
[[self entity]
|
||||
setAttributesUsedForLocking:[NSArray arrayWithObject:self]];
|
||||
}
|
||||
{
|
||||
[[self entity]
|
||||
setAttributesUsedForLocking:[NSArray arrayWithObject:self]];
|
||||
}
|
||||
else if (![la containsObject:self])
|
||||
{
|
||||
[[self entity]
|
||||
setAttributesUsedForLocking:[la arrayByAddingObject:self]];
|
||||
}
|
||||
[[self entity]
|
||||
setAttributesUsedForLocking:[la arrayByAddingObject:self]];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if ([la containsObject:self])
|
||||
{
|
||||
NSMutableArray *newLA = [NSMutableArray arrayWithArray:la];
|
||||
[newLA removeObject:self];
|
||||
[[self entity] setAttributesUsedForLocking:newLA];
|
||||
}
|
||||
{
|
||||
NSMutableArray *newLA = [NSMutableArray arrayWithArray:la];
|
||||
[newLA removeObject:self];
|
||||
[[self entity] setAttributesUsedForLocking:newLA];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -182,21 +182,21 @@
|
|||
[dv orderViewFront:self];
|
||||
|
||||
while ((ev = [NSApp nextEventMatchingMask:NSLeftMouseDraggedMask|NSLeftMouseUpMask untilDate:nil inMode:NSEventTrackingRunLoopMode dequeue:YES]))
|
||||
{
|
||||
float tox, toy;
|
||||
if ([ev type] == NSLeftMouseUp) break;
|
||||
{
|
||||
float tox, toy;
|
||||
if ([ev type] == NSLeftMouseUp) break;
|
||||
NSPoint pt2 = [dv convertPoint:[ev locationInWindow] fromView:nil];
|
||||
tox = pt2.x - in;
|
||||
toy = pt2.y - up;
|
||||
/* contrain to a positive x,y. */
|
||||
// at 1.0 we can get some libart artifacts for some reason..
|
||||
pt2.x = tox > 1.0 ? tox : 1.1;
|
||||
pt2.y = toy > 1.0 ? toy : 1.1;
|
||||
[self setFrameOrigin:pt2];
|
||||
[self autoscroll:ev];
|
||||
[dv setNeedsDisplay:YES];
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
tox = pt2.x - in;
|
||||
toy = pt2.y - up;
|
||||
/* contrain to a positive x,y. */
|
||||
// at 1.0 we can get some libart artifacts for some reason..
|
||||
pt2.x = tox > 1.0 ? tox : 1.1;
|
||||
pt2.y = toy > 1.0 ? toy : 1.1;
|
||||
[self setFrameOrigin:pt2];
|
||||
[self autoscroll:ev];
|
||||
[dv setNeedsDisplay:YES];
|
||||
[self setNeedsDisplay:YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -23,6 +23,14 @@
|
|||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
|
||||
ifeq ($(GNUSTEP_MAKEFILES),)
|
||||
GNUSTEP_MAKEFILES := $(shell gnustep-config --variable=GNUSTEP_MAKEFILES 2>/dev/null)
|
||||
endif
|
||||
|
||||
ifeq ($(GNUSTEP_MAKEFILES),)
|
||||
$(error You need to set GNUSTEP_MAKEFILES before compiling!)
|
||||
endif
|
||||
|
||||
include $(GNUSTEP_MAKEFILES)/common.make
|
||||
include ../common.make
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@
|
|||
|
||||
selObj = [self selectedObject];
|
||||
selectedParent = [[[selObj model] entities]
|
||||
objectAtIndex:[entities selectedRow]];
|
||||
objectAtIndex:[entities selectedRow]];
|
||||
|
||||
if ([selObj parentEntity] == selectedParent)
|
||||
{
|
||||
|
@ -109,7 +109,7 @@
|
|||
if (selectedRow == -1) return;
|
||||
|
||||
selectedParent = [[[selObj model] entities]
|
||||
objectAtIndex:selectedRow];
|
||||
objectAtIndex:selectedRow];
|
||||
[parent setEnabled:YES];
|
||||
[parent setState: ([selObj parentEntity] == selectedParent) ? NSOnState : NSOffState];
|
||||
}
|
||||
|
|
|
@ -43,39 +43,39 @@
|
|||
|
||||
@interface AttributeInspector : EOMInspector
|
||||
{
|
||||
IBOutlet NSTextField *_extNameField;
|
||||
IBOutlet NSTextField *_extTypeField;
|
||||
IBOutlet NSPopUpButton *_valueTypeSelect;
|
||||
IBOutlet NSPopUpButton *_flipSelect;// select which valueClassName/flip
|
||||
IBOutlet NSBox *_flipView; // gets replaced with a *Flip...
|
||||
IBOutlet NSBox *_internalData;
|
||||
IBOutlet NSTextField *_nameField;
|
||||
IBOutlet NSTextField *_extNameField;
|
||||
IBOutlet NSTextField *_extTypeField;
|
||||
IBOutlet NSPopUpButton *_valueTypeSelect;
|
||||
IBOutlet NSPopUpButton *_flipSelect;// select which valueClassName/flip
|
||||
IBOutlet NSBox *_flipView; // gets replaced with a *Flip...
|
||||
IBOutlet NSBox *_internalData;
|
||||
IBOutlet NSTextField *_nameField;
|
||||
|
||||
NSDictionary *_flipDict;
|
||||
NSDictionary *_classTitleDict;
|
||||
NSDictionary *_valueTypeDict;
|
||||
NSDictionary *_flipDict;
|
||||
NSDictionary *_classTitleDict;
|
||||
NSDictionary *_valueTypeDict;
|
||||
|
||||
IBOutlet NSBox *_customFlip; // default
|
||||
IBOutlet NSBox *_dataFlip;
|
||||
IBOutlet NSBox *_dateFlip;
|
||||
IBOutlet NSBox *_decimalFlip;
|
||||
IBOutlet NSBox *_numberFlip;
|
||||
IBOutlet NSBox *_stringFlip;
|
||||
IBOutlet NSBox *_customFlip; // default
|
||||
IBOutlet NSBox *_dataFlip;
|
||||
IBOutlet NSBox *_dateFlip;
|
||||
IBOutlet NSBox *_decimalFlip;
|
||||
IBOutlet NSBox *_numberFlip;
|
||||
IBOutlet NSBox *_stringFlip;
|
||||
|
||||
NSTextField *_custom_width;
|
||||
NSTextField *_custom_class;
|
||||
NSTextField *_custom_factory;
|
||||
NSTextField *_custom_conversion;
|
||||
NSPopUpButton *_custom_arg;
|
||||
NSTextField *_custom_width;
|
||||
NSTextField *_custom_class;
|
||||
NSTextField *_custom_factory;
|
||||
NSTextField *_custom_conversion;
|
||||
NSPopUpButton *_custom_arg;
|
||||
|
||||
NSTextField *_string_width;
|
||||
NSTextField *_string_width;
|
||||
|
||||
NSTextField *_decimal_precision;
|
||||
NSTextField *_decimal_width;
|
||||
NSTextField *_decimal_precision;
|
||||
NSTextField *_decimal_width;
|
||||
|
||||
NSTextField *_data_width;
|
||||
NSTextField *_data_width;
|
||||
|
||||
NSButton *_date_tz;
|
||||
NSButton *_date_tz;
|
||||
}
|
||||
/* generic */
|
||||
- (IBAction) selectInternalDataType:(id)sender;
|
||||
|
|
|
@ -40,54 +40,54 @@
|
|||
RETAIN(_internalData);
|
||||
_flipDict =
|
||||
[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
_stringFlip, @"String",
|
||||
_customFlip, @"Custom",
|
||||
_dataFlip, @"Data",
|
||||
_dateFlip, @"Date",
|
||||
_decimalFlip, @"Decimal Number",
|
||||
_numberFlip, @"Number",
|
||||
_stringFlip, @"String",
|
||||
_customFlip, @"Custom",
|
||||
_dataFlip, @"Data",
|
||||
_dateFlip, @"Date",
|
||||
_decimalFlip, @"Decimal Number",
|
||||
_numberFlip, @"Number",
|
||||
nil];
|
||||
|
||||
_valueTypeDict =
|
||||
[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
@"i", @"int",
|
||||
@"d", @"double",
|
||||
@"f", @"float",
|
||||
@"c", @"char",
|
||||
@"s", @"short",
|
||||
@"I", @"unsigned int",
|
||||
@"C", @"unsigned char",
|
||||
@"S", @"unsigned short",
|
||||
@"l", @"long",
|
||||
@"L", @"unsigned long",
|
||||
@"u", @"long long",
|
||||
@"U", @"unsigned long long",
|
||||
@"char", @"c",
|
||||
@"unsigned char", @"C",
|
||||
@"short", @"s",
|
||||
@"unsigned short", @"S",
|
||||
@"int", @"i",
|
||||
@"unsigned int", @"I",
|
||||
@"long", @"l",
|
||||
@"unsigned long", @"L",
|
||||
@"long long", @"u",
|
||||
@"unsigned long long", @"U",
|
||||
@"float", @"f",
|
||||
@"double", @"d",
|
||||
nil];
|
||||
@"i", @"int",
|
||||
@"d", @"double",
|
||||
@"f", @"float",
|
||||
@"c", @"char",
|
||||
@"s", @"short",
|
||||
@"I", @"unsigned int",
|
||||
@"C", @"unsigned char",
|
||||
@"S", @"unsigned short",
|
||||
@"l", @"long",
|
||||
@"L", @"unsigned long",
|
||||
@"u", @"long long",
|
||||
@"U", @"unsigned long long",
|
||||
@"char", @"c",
|
||||
@"unsigned char", @"C",
|
||||
@"short", @"s",
|
||||
@"unsigned short", @"S",
|
||||
@"int", @"i",
|
||||
@"unsigned int", @"I",
|
||||
@"long", @"l",
|
||||
@"unsigned long", @"L",
|
||||
@"long long", @"u",
|
||||
@"unsigned long long", @"U",
|
||||
@"float", @"f",
|
||||
@"double", @"d",
|
||||
nil];
|
||||
|
||||
_classTitleDict =
|
||||
[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
@"String", @"NSString",
|
||||
@"Data", @"NSData",
|
||||
@"Number", @"NSNumber",
|
||||
@"Date", @"NSCalendarDate",
|
||||
@"Decimal Number", @"NSDecimalNumber",
|
||||
@"NSString", @"String",
|
||||
@"NSData", @"Data",
|
||||
@"NSNumber", @"Number",
|
||||
@"NSDecimalNumber", @"Decimal Number",
|
||||
@"NSCalendarDate", @"Date",
|
||||
@"String", @"NSString",
|
||||
@"Data", @"NSData",
|
||||
@"Number", @"NSNumber",
|
||||
@"Date", @"NSCalendarDate",
|
||||
@"Decimal Number", @"NSDecimalNumber",
|
||||
@"NSString", @"String",
|
||||
@"NSData", @"Data",
|
||||
@"NSNumber", @"Number",
|
||||
@"NSDecimalNumber", @"Decimal Number",
|
||||
@"NSCalendarDate", @"Date",
|
||||
nil];
|
||||
}
|
||||
|
||||
|
@ -148,7 +148,7 @@
|
|||
{
|
||||
if (![obj valueType])
|
||||
{
|
||||
[obj setValueType:@"d"];
|
||||
[obj setValueType:@"d"];
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -173,7 +173,7 @@
|
|||
[_internalData replaceSubview:_flipView with:flipTo];
|
||||
_flipView = flipTo;
|
||||
[self performSelector:
|
||||
NSSelectorFromString([@"update" stringByAppendingString:[title stringByReplacingString:@" " withString:@""]])];
|
||||
NSSelectorFromString([@"update" stringByAppendingString:[title stringByReplacingString:@" " withString:@""]])];
|
||||
}
|
||||
|
||||
- (void) updateString
|
||||
|
@ -193,7 +193,7 @@
|
|||
[_custom_factory setStringValue:[obj valueFactoryMethodName]];
|
||||
[_custom_conversion setStringValue:[obj adaptorValueConversionMethodName]];
|
||||
[_custom_arg selectItemAtIndex:
|
||||
[_custom_arg indexOfItemWithTag: [obj factoryMethodArgumentType]]];
|
||||
[_custom_arg indexOfItemWithTag: [obj factoryMethodArgumentType]]];
|
||||
}
|
||||
|
||||
- (void) updateDecimalNumber
|
||||
|
@ -255,7 +255,7 @@
|
|||
|
||||
- (IBAction) setTimeZone:(id)sender;
|
||||
{
|
||||
// fixme
|
||||
// fixme
|
||||
}
|
||||
|
||||
- (IBAction) setWidth:(id)sender;
|
||||
|
|
|
@ -34,14 +34,14 @@
|
|||
@class EOEntity;
|
||||
@interface RelationshipInspector : EOMInspector
|
||||
{
|
||||
IBOutlet NSTextField *name_textField;
|
||||
IBOutlet NSPopUpButton *model_popup;
|
||||
IBOutlet NSMatrix *joinCardinality_matrix;
|
||||
IBOutlet NSPopUpButton *joinSemantic_popup;
|
||||
IBOutlet NSTableView *destEntity_tableView;
|
||||
IBOutlet NSTableView *srcAttrib_tableView;
|
||||
IBOutlet NSTableView *destAttrib_tableView;
|
||||
IBOutlet NSButton *connect_button;
|
||||
IBOutlet NSTextField *name_textField;
|
||||
IBOutlet NSPopUpButton *model_popup;
|
||||
IBOutlet NSMatrix *joinCardinality_matrix;
|
||||
IBOutlet NSPopUpButton *joinSemantic_popup;
|
||||
IBOutlet NSTableView *destEntity_tableView;
|
||||
IBOutlet NSTableView *srcAttrib_tableView;
|
||||
IBOutlet NSTableView *destAttrib_tableView;
|
||||
IBOutlet NSButton *connect_button;
|
||||
}
|
||||
|
||||
- (IBAction) connectionChanged:(id)sender;
|
||||
|
|
|
@ -132,24 +132,24 @@
|
|||
{
|
||||
BOOL flag;
|
||||
id join = [joins objectAtIndex:i];
|
||||
|
||||
|
||||
/* if both arguments are non-nil, both must be equal,
|
||||
* if one argument is nil the non-nil argument must be equal */
|
||||
flag = ((srcAttrib
|
||||
&& destAttrib
|
||||
&& [srcAttrib isEqual:[join sourceAttribute]]
|
||||
&& [destAttrib isEqual:[join destinationAttribute]])
|
||||
|| (srcAttrib
|
||||
&& (destAttrib == nil)
|
||||
&& [srcAttrib isEqual:[join sourceAttribute]])
|
||||
|| (destAttrib
|
||||
&& (srcAttrib == nil)
|
||||
&& [destAttrib isEqual:[join destinationAttribute]]));
|
||||
|
||||
&& destAttrib
|
||||
&& [srcAttrib isEqual:[join sourceAttribute]]
|
||||
&& [destAttrib isEqual:[join destinationAttribute]])
|
||||
|| (srcAttrib
|
||||
&& (destAttrib == nil)
|
||||
&& [srcAttrib isEqual:[join sourceAttribute]])
|
||||
|| (destAttrib
|
||||
&& (srcAttrib == nil)
|
||||
&& [destAttrib isEqual:[join destinationAttribute]]));
|
||||
|
||||
if (flag)
|
||||
{
|
||||
return join;
|
||||
}
|
||||
{
|
||||
return join;
|
||||
}
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
@ -157,7 +157,7 @@
|
|||
- (EOJoin *) selectedJoin
|
||||
{
|
||||
EOJoin *join = [self joinWithSource:[self selectedSourceAttribute]
|
||||
destination:[self selectedDestinationAttribute]];
|
||||
destination:[self selectedDestinationAttribute]];
|
||||
return join;
|
||||
}
|
||||
|
||||
|
@ -227,13 +227,13 @@
|
|||
{
|
||||
if ([self numberOfRowsInTableView:srcAttrib_tableView])
|
||||
{
|
||||
[srcAttrib_tableView selectRow:0 byExtendingSelection:NO];
|
||||
}
|
||||
[srcAttrib_tableView selectRow:0 byExtendingSelection:NO];
|
||||
}
|
||||
|
||||
if ([self numberOfRowsInTableView:destAttrib_tableView])
|
||||
{
|
||||
[destAttrib_tableView selectRow:0 byExtendingSelection:NO];
|
||||
}
|
||||
[destAttrib_tableView selectRow:0 byExtendingSelection:NO];
|
||||
}
|
||||
}
|
||||
|
||||
[self updateConnectButton];
|
||||
|
@ -255,7 +255,7 @@
|
|||
{
|
||||
int selectedRow = [destEntity_tableView selectedRow];
|
||||
if (selectedRow == -1 || selectedRow == NSNotFound)
|
||||
return 0;
|
||||
return 0;
|
||||
return [[(EOEntity *)[[activeModel entities] objectAtIndex:[destEntity_tableView selectedRow]] attributes] count];
|
||||
|
||||
}
|
||||
|
@ -281,7 +281,7 @@ row:(int)rowIndex
|
|||
if (selectedRow == NSNotFound)
|
||||
[destEntity_tableView selectRow:0 byExtendingSelection:NO];
|
||||
return [(EOAttribute *)[[(EOEntity *)[[activeModel entities] objectAtIndex:[destEntity_tableView selectedRow]]
|
||||
attributes] objectAtIndex:rowIndex] name];
|
||||
attributes] objectAtIndex:rowIndex] name];
|
||||
}
|
||||
|
||||
return nil;
|
||||
|
|
|
@ -91,8 +91,8 @@ return self;
|
|||
return AUTORELEASE(object);
|
||||
*/
|
||||
[[NSException exceptionWithName:NSInternalInconsistencyException
|
||||
reason: [NSString stringWithFormat:@"%@ not supported by %@", NSStringFromSelector(_cmd), NSStringFromClass([self class])]
|
||||
userInfo:nil] raise];
|
||||
reason: [NSString stringWithFormat:@"%@ not supported by %@", NSStringFromSelector(_cmd), NSStringFromClass([self class])]
|
||||
userInfo:nil] raise];
|
||||
return nil;
|
||||
}
|
||||
- (void) insertObject:(id)object
|
||||
|
@ -108,8 +108,8 @@ return self;
|
|||
}
|
||||
*/
|
||||
[[NSException exceptionWithName:NSInternalInconsistencyException
|
||||
reason: [NSString stringWithFormat:@"%@ not supported by %@", NSStringFromSelector(_cmd), NSStringFromClass([self class])]
|
||||
userInfo:nil] raise];
|
||||
reason: [NSString stringWithFormat:@"%@ not supported by %@", NSStringFromSelector(_cmd), NSStringFromClass([self class])]
|
||||
userInfo:nil] raise];
|
||||
}
|
||||
|
||||
- (void) deleteObject:(id)object
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
|
||||
@interface MainModelEditor : EOModelerCompoundEditor
|
||||
{
|
||||
NSView *_editorView;
|
||||
NSView *_editorView;
|
||||
NSWindow *_window;
|
||||
NSOutlineView *_iconPath;
|
||||
NSSplitView *_vSplit;
|
||||
|
|
|
@ -71,8 +71,8 @@
|
|||
@implementation ModelerOutlineView
|
||||
|
||||
- (NSImage *) dragImageForRows:(NSArray *)dragRows
|
||||
event: (NSEvent *)dragEvent
|
||||
dragImageOffset: (NSPoint *)dragImageOffset
|
||||
event: (NSEvent *)dragEvent
|
||||
dragImageOffset: (NSPoint *)dragImageOffset
|
||||
{
|
||||
id foo = [self itemAtRow:[[dragRows objectAtIndex:0] intValue]];
|
||||
NSImage *img = nil;
|
||||
|
@ -117,9 +117,9 @@
|
|||
[_iconPath sizeToFit];
|
||||
|
||||
_window = [[NSWindow alloc] initWithContentRect:NSMakeRect(20,80,600,400)
|
||||
styleMask: NSTitledWindowMask | NSMiniaturizableWindowMask | NSClosableWindowMask | NSResizableWindowMask
|
||||
backing:NSBackingStoreBuffered
|
||||
defer:YES];
|
||||
styleMask: NSTitledWindowMask | NSMiniaturizableWindowMask | NSClosableWindowMask | NSResizableWindowMask
|
||||
backing:NSBackingStoreBuffered
|
||||
defer:YES];
|
||||
[_window setTitle:[[document model] name]];
|
||||
[_window setReleasedWhenClosed:NO];
|
||||
|
||||
|
@ -139,7 +139,7 @@
|
|||
|
||||
[_vSplit setAutoresizesSubviews:YES];
|
||||
[_vSplit setAutoresizingMask: NSViewWidthSizable
|
||||
| NSViewHeightSizable];
|
||||
| NSViewHeightSizable];
|
||||
[_vSplit adjustSubviews];
|
||||
[[_window contentView] addSubview:_vSplit];
|
||||
RELEASE(_vSplit);
|
||||
|
@ -149,9 +149,9 @@
|
|||
[_window setDelegate: document];
|
||||
|
||||
[[NSNotificationCenter defaultCenter] addObserver: self
|
||||
selector:@selector(ecStuff:)
|
||||
name: EOObjectsChangedInEditingContextNotification
|
||||
object: [[self document] editingContext]];
|
||||
selector:@selector(ecStuff:)
|
||||
name: EOObjectsChangedInEditingContextNotification
|
||||
object: [[self document] editingContext]];
|
||||
|
||||
[self setViewedObjectPath:[NSArray arrayWithObject:[document model]]];
|
||||
}
|
||||
|
@ -197,8 +197,8 @@
|
|||
{
|
||||
[_window makeKeyAndOrderFront:self];
|
||||
[self activateEmbeddedEditor:
|
||||
[self embedibleEditorOfClass:
|
||||
NSClassFromString(@"ModelerEntityEditor")]];
|
||||
[self embedibleEditorOfClass:
|
||||
NSClassFromString(@"ModelerEntityEditor")]];
|
||||
|
||||
}
|
||||
[_iconPath reloadData];
|
||||
|
@ -210,7 +210,7 @@
|
|||
id selection;
|
||||
if ([[self selectionWithinViewedObject] count] == 0)
|
||||
return;
|
||||
|
||||
|
||||
selection = [[self selectionWithinViewedObject] objectAtIndex:0];
|
||||
#if DEBUG_STUFF == 1
|
||||
GSPrintf(stderr, @"viewing %@(%@)\n", NSStringFromClass([selection class]), [(EOModel *)selection name]);
|
||||
|
@ -228,50 +228,50 @@
|
|||
for (i = 0, c = [friends count]; i < c; i++)
|
||||
{
|
||||
for (j = 0,editorsCount = [_editors count]; j < editorsCount; j++)
|
||||
{
|
||||
id friendEditor = [_editors objectAtIndex:j];
|
||||
{
|
||||
id friendEditor = [_editors objectAtIndex:j];
|
||||
id friendClass = [friends objectAtIndex:i];
|
||||
|
||||
if ([friendEditor isKindOfClass: friendClass])
|
||||
{
|
||||
if ([friendEditor canSupportCurrentSelection])
|
||||
{
|
||||
[self activateEmbeddedEditor:friendEditor];
|
||||
[super viewSelectedObject];
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ([friendEditor isKindOfClass: friendClass])
|
||||
{
|
||||
if ([friendEditor canSupportCurrentSelection])
|
||||
{
|
||||
[self activateEmbeddedEditor:friendEditor];
|
||||
[super viewSelectedObject];
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/* instantiate friends to see if we can support the current selection */
|
||||
for (i = 0,c = [friends count]; i < c; i++)
|
||||
{
|
||||
id friendClass = [friends objectAtIndex:i];
|
||||
id friend = [[friendClass alloc] initWithParentEditor:self];
|
||||
if ([friend canSupportCurrentSelection])
|
||||
{
|
||||
[self activateEmbeddedEditor:friend];
|
||||
RELEASE(friend);
|
||||
[super viewSelectedObject];
|
||||
return;
|
||||
}
|
||||
RELEASE(friend);
|
||||
}
|
||||
if ([friend canSupportCurrentSelection])
|
||||
{
|
||||
[self activateEmbeddedEditor:friend];
|
||||
RELEASE(friend);
|
||||
[super viewSelectedObject];
|
||||
return;
|
||||
}
|
||||
RELEASE(friend);
|
||||
}
|
||||
/* look for any old editor this isn't very nice...
|
||||
* because it only works with registered editors, and we can only
|
||||
* register instances of editors, so a) can't load on demand non-friend
|
||||
* editors, or b) we should register instances of all editors */
|
||||
for (i = 0, c = [_editors count]; i < c; i++)
|
||||
{
|
||||
id anEditor = [_editors objectAtIndex:i];
|
||||
|
||||
if ([anEditor canSupportCurrentSelection])
|
||||
{
|
||||
[self activateEmbeddedEditor:anEditor];
|
||||
[super viewSelectedObject];
|
||||
return;
|
||||
}
|
||||
}
|
||||
id anEditor = [_editors objectAtIndex:i];
|
||||
|
||||
if ([anEditor canSupportCurrentSelection])
|
||||
{
|
||||
[self activateEmbeddedEditor:anEditor];
|
||||
[super viewSelectedObject];
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
[super viewSelectedObject];
|
||||
|
@ -365,21 +365,21 @@
|
|||
while (bar != item)
|
||||
{
|
||||
if (item == nil)
|
||||
{
|
||||
|
||||
item = [_iconPath itemAtRow:selectedRow];
|
||||
[foo insertObject:[NSArray arrayWithObject:item] atIndex:0];
|
||||
}
|
||||
{
|
||||
|
||||
item = [_iconPath itemAtRow:selectedRow];
|
||||
[foo insertObject:[NSArray arrayWithObject:item] atIndex:0];
|
||||
}
|
||||
else if ([item isKindOfClass:[EOEntity class]])
|
||||
{
|
||||
item = [item model];
|
||||
{
|
||||
item = [item model];
|
||||
[foo insertObject:item atIndex:0];
|
||||
}
|
||||
}
|
||||
else if ([item isKindOfClass:[EORelationship class]])
|
||||
{
|
||||
item = [item entity];
|
||||
item = [item entity];
|
||||
[foo insertObject:item atIndex:0];
|
||||
}
|
||||
}
|
||||
}
|
||||
#if DEBUG_STUFF == 1
|
||||
{
|
||||
|
@ -388,18 +388,18 @@
|
|||
NSLog(@"current selection path");
|
||||
for (i = 0, c = [selpath count]; i < c; i++)
|
||||
{
|
||||
id obj = [selpath objectAtIndex:i];
|
||||
|
||||
if ([obj isKindOfClass:[NSArray class]])
|
||||
{
|
||||
int j,d;
|
||||
for (j = 0, d = [obj count]; j < d; j++)
|
||||
{
|
||||
GSPrintf(stderr, @"* %@(%@)\n", [[obj objectAtIndex:j] class], [(EOModel *)[obj objectAtIndex:j] name]);
|
||||
}
|
||||
}
|
||||
else
|
||||
GSPrintf(stderr, @"%@(%@)\n", [obj class], [(EOModel *)obj name]);
|
||||
id obj = [selpath objectAtIndex:i];
|
||||
|
||||
if ([obj isKindOfClass:[NSArray class]])
|
||||
{
|
||||
int j,d;
|
||||
for (j = 0, d = [obj count]; j < d; j++)
|
||||
{
|
||||
GSPrintf(stderr, @"* %@(%@)\n", [[obj objectAtIndex:j] class], [(EOModel *)[obj objectAtIndex:j] name]);
|
||||
}
|
||||
}
|
||||
else
|
||||
GSPrintf(stderr, @"%@(%@)\n", [obj class], [(EOModel *)obj name]);
|
||||
}
|
||||
NSLog(@"changing to");
|
||||
selpath = foo;
|
||||
|
@ -439,24 +439,24 @@ toPasteboard:(NSPasteboard *)pboard
|
|||
{
|
||||
if (item == bar)
|
||||
{
|
||||
NSString *modelPath = [item valueForKey:@"path"];
|
||||
if (modelPath == nil)
|
||||
{
|
||||
NSRunAlertPanel(@"Error", @"Must save before dragging", @"OK",@"Cancel",nil);
|
||||
return NO;
|
||||
}
|
||||
NSString *modelPath = [item valueForKey:@"path"];
|
||||
if (modelPath == nil)
|
||||
{
|
||||
NSRunAlertPanel(@"Error", @"Must save before dragging", @"OK",@"Cancel",nil);
|
||||
return NO;
|
||||
}
|
||||
[foo insertObject:modelPath atIndex:0];
|
||||
item = nil;
|
||||
item = nil;
|
||||
}
|
||||
else if ([item isKindOfClass:[EOEntity class]])
|
||||
{
|
||||
[foo insertObject:[item valueForKey:@"name"] atIndex:0];
|
||||
item = [item model];
|
||||
item = [item model];
|
||||
}
|
||||
else if ([item isKindOfClass:[EORelationship class]])
|
||||
{
|
||||
[foo insertObject:[item valueForKey:@"name"] atIndex:0];
|
||||
item = [item entity];
|
||||
item = [item entity];
|
||||
}
|
||||
}
|
||||
[pboard declareTypes: [NSArray arrayWithObject: EOMPropertyPboardType] owner:nil];
|
||||
|
@ -471,7 +471,7 @@ forTableColumn:(NSTableColumn *)tc
|
|||
item:(id)item
|
||||
{
|
||||
//if (![[tc identifier] isEqual:@"name"])
|
||||
// return;
|
||||
// return;
|
||||
if ([item isKindOfClass:[EOModel class]])
|
||||
[cell setImage: [NSImage imageNamed:@"Model_small.tiff"]];
|
||||
if ([item isKindOfClass:[EOEntity class]])
|
||||
|
|
|
@ -126,11 +126,11 @@
|
|||
[_attributes_dg setDelegate:self];
|
||||
|
||||
[self setupCornerView:cornerView
|
||||
tableView:_attributes_tableView
|
||||
displayGroup:_attributes_dg
|
||||
forClass:[EOAttribute class]];
|
||||
tableView:_attributes_tableView
|
||||
displayGroup:_attributes_dg
|
||||
forClass:[EOAttribute class]];
|
||||
[self addDefaultTableColumnsForTableView:_attributes_tableView
|
||||
displayGroup:_attributes_dg];
|
||||
displayGroup:_attributes_dg];
|
||||
|
||||
/* setup the relationships table view */
|
||||
scrollView = [[NSScrollView alloc] initWithFrame:NSMakeRect(0,0,100,100)];
|
||||
|
@ -181,12 +181,12 @@
|
|||
[_relationships_dg setDelegate:self];
|
||||
|
||||
[self setupCornerView:cornerView
|
||||
tableView:_relationships_tableView
|
||||
displayGroup:_relationships_dg
|
||||
forClass:[EORelationship class]];
|
||||
tableView:_relationships_tableView
|
||||
displayGroup:_relationships_dg
|
||||
forClass:[EORelationship class]];
|
||||
|
||||
[self addDefaultTableColumnsForTableView:_relationships_tableView
|
||||
displayGroup:_relationships_dg];
|
||||
displayGroup:_relationships_dg];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
@ -248,12 +248,12 @@
|
|||
|
||||
if (![[_attributes_dg selectedObjects] isEqual:selWithin]
|
||||
&& ![_attributes_dg selectObjectsIdenticalTo:selWithin
|
||||
selectFirstOnNoMatch:NO])
|
||||
selectFirstOnNoMatch:NO])
|
||||
[_attributes_dg clearSelection];
|
||||
|
||||
if (![[_relationships_dg selectedObjects] isEqual:selWithin]
|
||||
&& ![_relationships_dg selectObjectsIdenticalTo:selWithin
|
||||
selectFirstOnNoMatch:NO])
|
||||
selectFirstOnNoMatch:NO])
|
||||
[_relationships_dg clearSelection];
|
||||
}
|
||||
|
||||
|
@ -265,11 +265,11 @@
|
|||
- (void) objectWillChange:(id)sender
|
||||
{
|
||||
[[NSRunLoop currentRunLoop]
|
||||
performSelector:@selector(needToFetch:)
|
||||
target:self
|
||||
argument:nil
|
||||
order:999 /* this number is probably arbitrary */
|
||||
modes:[NSArray arrayWithObject:NSDefaultRunLoopMode]];
|
||||
performSelector:@selector(needToFetch:)
|
||||
target:self
|
||||
argument:nil
|
||||
order:999 /* this number is probably arbitrary */
|
||||
modes:[NSArray arrayWithObject:NSDefaultRunLoopMode]];
|
||||
}
|
||||
|
||||
- (NSArray *)defaultColumnNamesForClass:(Class)aClass
|
||||
|
@ -278,11 +278,11 @@
|
|||
if (colNames == nil || [colNames count] == 0)
|
||||
{
|
||||
if (aClass == [EOAttribute class])
|
||||
return DefaultAttributeColumns;
|
||||
return DefaultAttributeColumns;
|
||||
else if (aClass == [EORelationship class])
|
||||
return DefaultRelationshipColumns;
|
||||
return DefaultRelationshipColumns;
|
||||
else
|
||||
return nil;
|
||||
return nil;
|
||||
}
|
||||
|
||||
return colNames;
|
||||
|
|
|
@ -41,7 +41,7 @@
|
|||
NSTableView *_bottomTable;
|
||||
NSSplitView *_splitView;
|
||||
NSWindow *_window;
|
||||
NSBox *_box;
|
||||
NSBox *_box;
|
||||
EODisplayGroup *dg;
|
||||
}
|
||||
|
||||
|
|
|
@ -174,8 +174,8 @@
|
|||
|
||||
classDescription = nil;
|
||||
wds = [[KVDataSource alloc]
|
||||
initWithClassDescription:classDescription
|
||||
editingContext:[[self document] editingContext]];
|
||||
initWithClassDescription:classDescription
|
||||
editingContext:[[self document] editingContext]];
|
||||
|
||||
[wds setDataObject: [[self document] model]];
|
||||
[wds setKey:@"entities"];
|
||||
|
@ -187,12 +187,12 @@
|
|||
[dg setDelegate: self];
|
||||
|
||||
[self setupCornerView:cornerView
|
||||
tableView:_topTable
|
||||
displayGroup:dg
|
||||
forClass:[EOEntity class]];
|
||||
tableView:_topTable
|
||||
displayGroup:dg
|
||||
forClass:[EOEntity class]];
|
||||
|
||||
[self addDefaultTableColumnsForTableView:_topTable
|
||||
displayGroup:dg];
|
||||
displayGroup:dg];
|
||||
|
||||
|
||||
}
|
||||
|
@ -217,7 +217,7 @@
|
|||
[dg fetch];
|
||||
|
||||
[dg selectObjectsIdenticalTo:[self selectionWithinViewedObject]
|
||||
selectFirstOnNoMatch:NO];
|
||||
selectFirstOnNoMatch:NO];
|
||||
}
|
||||
|
||||
- (NSView *)mainView
|
||||
|
@ -228,11 +228,11 @@
|
|||
- (void) objectWillChange:(id)anObject
|
||||
{
|
||||
[[NSRunLoop currentRunLoop]
|
||||
performSelector:@selector(needToFetch:)
|
||||
target:self
|
||||
argument:nil
|
||||
order:999 /* this number is probably arbitrary */
|
||||
modes:[NSArray arrayWithObject:NSDefaultRunLoopMode]];
|
||||
performSelector:@selector(needToFetch:)
|
||||
target:self
|
||||
argument:nil
|
||||
order:999 /* this number is probably arbitrary */
|
||||
modes:[NSArray arrayWithObject:NSDefaultRunLoopMode]];
|
||||
}
|
||||
|
||||
- (void) needToFetch:(id)sth
|
||||
|
|
|
@ -40,18 +40,18 @@
|
|||
*/
|
||||
@interface ModelerTableEmbedibleEditor : EOModelerEmbedibleEditor
|
||||
- (void) setupCornerView:(NSPopUpButton *)cornerView
|
||||
tableView:(NSTableView *)tableView
|
||||
displayGroup:(EODisplayGroup *)dg
|
||||
forClass:(Class)aClass;
|
||||
tableView:(NSTableView *)tableView
|
||||
displayGroup:(EODisplayGroup *)dg
|
||||
forClass:(Class)aClass;
|
||||
|
||||
- (void) _cornerAction:(id)sender;
|
||||
- (NSArray *)defaultColumnNamesForClass:(Class)aClass;
|
||||
- (void) addDefaultTableColumnsForTableView:(NSTableView *)tv
|
||||
displayGroup:(EODisplayGroup *)dg;
|
||||
displayGroup:(EODisplayGroup *)dg;
|
||||
- (void) addTableColumnForItem:(NSMenuItem <NSMenuItem>*)item
|
||||
tableView:(NSTableView *)tv;
|
||||
tableView:(NSTableView *)tv;
|
||||
- (void) removeTableColumnForItem:(NSMenuItem <NSMenuItem>*)menuItem
|
||||
tableView:(NSTableView *)tv;
|
||||
tableView:(NSTableView *)tv;
|
||||
|
||||
@end
|
||||
|
||||
|
|
|
@ -46,9 +46,9 @@
|
|||
/* base class with some methods shared among default embedible editors */
|
||||
@implementation ModelerTableEmbedibleEditor : EOModelerEmbedibleEditor
|
||||
- (void) setupCornerView:(NSPopUpButton *)cornerView
|
||||
tableView:(NSTableView *)tableView
|
||||
displayGroup:(EODisplayGroup *)dg
|
||||
forClass:(Class)aClass
|
||||
tableView:(NSTableView *)tableView
|
||||
displayGroup:(EODisplayGroup *)dg
|
||||
forClass:(Class)aClass
|
||||
{
|
||||
NSArray *columnNames = [EOMApp columnNamesForClass:aClass];
|
||||
int i, c;
|
||||
|
@ -77,7 +77,7 @@
|
|||
}
|
||||
|
||||
- (void) addDefaultTableColumnsForTableView:(NSTableView *)tv
|
||||
displayGroup:(EODisplayGroup *)dg
|
||||
displayGroup:(EODisplayGroup *)dg
|
||||
{
|
||||
Class aClass = [[(NSPopUpButton*)[tv cornerView] cell] representedObject];
|
||||
NSArray *columnNames = [self defaultColumnNamesForClass:aClass];
|
||||
|
@ -98,7 +98,7 @@
|
|||
RELEASE(tc);
|
||||
|
||||
[provider initColumn:tc class:aClass name:columnName
|
||||
displayGroup:dg document:[self document]];
|
||||
displayGroup:dg document:[self document]];
|
||||
item = (NSMenuItem *)[cv itemWithTitle:columnName];
|
||||
[item setRepresentedObject:tc];
|
||||
[item setState:NSOnState];
|
||||
|
@ -107,7 +107,7 @@
|
|||
}
|
||||
|
||||
- (void) addTableColumnForItem:(NSMenuItem <NSMenuItem>*)item
|
||||
tableView:(NSTableView *)tv
|
||||
tableView:(NSTableView *)tv
|
||||
{
|
||||
NSString *columnName = [item title];
|
||||
Class aClass = [[(NSPopUpButton *)[tv cornerView] cell] representedObject];
|
||||
|
@ -123,16 +123,16 @@
|
|||
/* this requires that the table at least have 1 table column in it...
|
||||
* so we have to have another method to setup the default table columns */
|
||||
[provider initColumn:tc
|
||||
class:aClass
|
||||
class:aClass
|
||||
name:columnName
|
||||
displayGroup:[[tv delegate] displayGroupForAspect:@"source"] // <-+-^
|
||||
document:[self document]];
|
||||
[tc sizeToFit];
|
||||
[tv tile];
|
||||
}
|
||||
|
||||
|
||||
- (void) removeTableColumnForItem:(NSMenuItem <NSMenuItem>*)item
|
||||
tableView:(NSTableView *)tv
|
||||
tableView:(NSTableView *)tv
|
||||
{
|
||||
[tv removeTableColumn:[item representedObject]];
|
||||
[item setRepresentedObject:nil];
|
||||
|
@ -154,11 +154,11 @@
|
|||
}
|
||||
|
||||
- (void) displayGroup:(EODisplayGroup *)dg didSetValue:(id)value
|
||||
forObject:(id)obj key:(NSString *)key
|
||||
forObject:(id)obj key:(NSString *)key
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
postNotificationName:EOMSelectionChangedNotification
|
||||
object:nil];
|
||||
postNotificationName:EOMSelectionChangedNotification
|
||||
object:nil];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
|
@ -24,7 +24,7 @@
|
|||
**/
|
||||
#include "NSView+Additions.h"
|
||||
|
||||
@implementation NSView (Additions)
|
||||
@implementation NSView (Additions)
|
||||
- (void) orderViewFront:(NSView *)v
|
||||
{
|
||||
[[self superview] orderViewFront:self];
|
||||
|
|
|
@ -111,9 +111,9 @@ static NSString *_switches[][2] =
|
|||
}
|
||||
[check_matrix sizeToCells];
|
||||
[consistencyCheckOnSave
|
||||
setState:[ud boolForKey:DisableConsistencyCheckOnSave]
|
||||
? NSOffState
|
||||
: NSOnState];
|
||||
setState:[ud boolForKey:DisableConsistencyCheckOnSave]
|
||||
? NSOffState
|
||||
: NSOnState];
|
||||
[bundlesToLoad reloadData];
|
||||
}
|
||||
|
||||
|
@ -174,7 +174,7 @@ static NSString *_switches[][2] =
|
|||
|
||||
- (BOOL) relationshipCheck
|
||||
{
|
||||
return FROBKEY(DisableRelationshipCheck);
|
||||
return FROBKEY(DisableRelationshipCheck);
|
||||
}
|
||||
|
||||
- (BOOL) storedProcedureCheck
|
||||
|
@ -198,7 +198,7 @@ static NSString *_switches[][2] =
|
|||
- (void) tableView:(NSTableView *)tv
|
||||
setObjectValue:(id)newVal
|
||||
forTableColumn:(NSTableColumn *)tc
|
||||
row:(int)rowIndex
|
||||
row:(int)rowIndex
|
||||
{
|
||||
[_bundles replaceObjectAtIndex:rowIndex withObject:newVal];
|
||||
[ud setObject:_bundles forKey:BundlesToLoad];
|
||||
|
|
|
@ -79,8 +79,8 @@ static NSString *_otherScript;
|
|||
if (sharedGenerator)
|
||||
{
|
||||
[[NSException exceptionWithName:NSInternalInconsistencyException
|
||||
reason: @"singleton initialized multiple times"
|
||||
userInfo:nil] raise];
|
||||
reason: @"singleton initialized multiple times"
|
||||
userInfo:nil] raise];
|
||||
return nil;
|
||||
}
|
||||
self = [super init];
|
||||
|
@ -157,16 +157,16 @@ static NSString *_otherScript;
|
|||
connDict = [adaptor runLoginPanel];
|
||||
|
||||
if (connDict)
|
||||
[adaptor setConnectionDictionary:connDict];
|
||||
[adaptor setConnectionDictionary:connDict];
|
||||
}
|
||||
|
||||
if (!adaptor || [[connDict allKeys] count] == 0)
|
||||
{
|
||||
NSRunAlertPanel(@"Error",
|
||||
@"SQL generator requires a valid adaptor and connection dictionary",
|
||||
@"Ok",
|
||||
nil,
|
||||
nil);
|
||||
@"SQL generator requires a valid adaptor and connection dictionary",
|
||||
@"Ok",
|
||||
nil,
|
||||
nil);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -273,7 +273,7 @@ static NSString *_otherScript;
|
|||
{
|
||||
btn = [adminSwitchButtons objectAtIndex:i];
|
||||
[opts setObject:([[btn objectValue] boolValue]) ? @"YES" : @"NO"
|
||||
forKey: [[btn cell] representedObject]];
|
||||
forKey: [[btn cell] representedObject]];
|
||||
}
|
||||
|
||||
for (i = 0, c = [otherSwitchButtons count]; i < c; i++)
|
||||
|
@ -284,7 +284,7 @@ static NSString *_otherScript;
|
|||
|
||||
arr = [[[EOMApp activeDocument] model] entities];
|
||||
_adminScript = RETAIN([expr schemaCreationScriptForEntities:arr
|
||||
options:opts]);
|
||||
options:opts]);
|
||||
|
||||
for (i = 0, c = [adminSwitchButtons count]; i < c; i++)
|
||||
{
|
||||
|
@ -296,12 +296,12 @@ static NSString *_otherScript;
|
|||
{
|
||||
btn = [otherSwitchButtons objectAtIndex:i];
|
||||
[opts setObject:([[btn objectValue] boolValue]) ? @"YES" : @"NO"
|
||||
forKey: [[btn cell] representedObject]];
|
||||
forKey: [[btn cell] representedObject]];
|
||||
}
|
||||
|
||||
arr = [[[EOMApp activeDocument] model] entities];
|
||||
_otherScript = RETAIN([expr schemaCreationScriptForEntities:arr
|
||||
options:opts]);
|
||||
options:opts]);
|
||||
|
||||
[_sqlOutput setString:[_adminScript stringByAppendingString:_otherScript]];
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue