mirror of
https://github.com/gnustep/libs-gdl2.git
synced 2025-02-21 02:20:55 +00:00
* DBModeler/Inspectors/AttributeInspector.[hm]: Merge private
dictionarys without conflicting keys. Replace Integer/Double types with a generic Number type. * DBModeler/Inspectors/AttributeInspector.gorm: Update interface for 'Number'. git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@23536 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
05f8a3e375
commit
45d6b72c04
5 changed files with 61 additions and 82 deletions
|
@ -9,10 +9,16 @@
|
|||
* DBModeler/GNUmakefile: Add new file.
|
||||
* DBModeler/DefaultColumnProvider.m: Set column header image.
|
||||
|
||||
* DBModeler/Inspectors/AttributeInspector.h/m: implement valueType
|
||||
* DBModeler/Inspectors/AttributeInspector.[hm]: Implement valueType
|
||||
pop-up button, and add macro to clean up some code.
|
||||
* DBModeler/Inspectors/AttributeInspector.gorm: Ditto.
|
||||
|
||||
* DBModeler/Inspectors/AttributeInspector.[hm]: Merge private
|
||||
dictionarys without conflicting keys. Replace Integer/Double
|
||||
types with a generic Number type.
|
||||
* DBModeler/Inspectors/AttributeInspector.gorm: Update interface
|
||||
for 'Number'.
|
||||
|
||||
2006-09-16 David Ayers <ayers@fsfe.org>
|
||||
|
||||
* EOAccess/EOAttribute.[hm]: Add documentation.
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
"## Comment" = "Do NOT change this file, Gorm maintains it";
|
||||
AttributeInspector = {
|
||||
Actions = (
|
||||
"setValueClassNameAndType:",
|
||||
"selectInternalDataType:",
|
||||
"setExternalName:",
|
||||
"setExternalType:",
|
||||
"setName:",
|
||||
|
@ -25,8 +25,7 @@
|
|||
_dataFlip,
|
||||
_dateFlip,
|
||||
_decimalFlip,
|
||||
_doubleFlip,
|
||||
_integerFlip,
|
||||
_numberFlip,
|
||||
_stringFlip,
|
||||
_internalData,
|
||||
_custom_arg,
|
||||
|
@ -64,7 +63,7 @@
|
|||
"setName:",
|
||||
"setPrecision:",
|
||||
"setTimeZone:",
|
||||
"setValueClassNameAndType:",
|
||||
"selectInternalDataType:",
|
||||
"setWidth:"
|
||||
);
|
||||
Super = NSObject;
|
||||
|
|
Binary file not shown.
|
@ -20,17 +20,13 @@
|
|||
|
||||
NSDictionary *_flipDict;
|
||||
NSDictionary *_classTitleDict;
|
||||
NSDictionary *_titleClassDict;
|
||||
NSDictionary *_valueTypeTitleDict;
|
||||
NSDictionary *_valueTypeDict;
|
||||
NSDictionary *_typeValueDict;
|
||||
|
||||
IBOutlet NSBox *_customFlip; // default
|
||||
IBOutlet NSBox *_dataFlip;
|
||||
IBOutlet NSBox *_dateFlip;
|
||||
IBOutlet NSBox *_decimalFlip;
|
||||
IBOutlet NSBox *_doubleFlip;
|
||||
IBOutlet NSBox *_integerFlip;
|
||||
IBOutlet NSBox *_numberFlip;
|
||||
IBOutlet NSBox *_stringFlip;
|
||||
|
||||
NSTextField *_custom_width;
|
||||
|
@ -49,10 +45,10 @@
|
|||
NSButton *_date_tz;
|
||||
}
|
||||
/* generic */
|
||||
- (IBAction) selectInternalDataType:(id)sender;
|
||||
- (IBAction) setName:(id)sender;
|
||||
- (IBAction) setExternalName:(id)sender;
|
||||
- (IBAction) setExternalType:(id)sender;
|
||||
- (IBAction) setValueClassNameAndType:(id)sender;
|
||||
|
||||
/* dependent on value class name */
|
||||
- (IBAction) setWidth:(id)sender;
|
||||
|
@ -61,7 +57,7 @@
|
|||
- (IBAction) setFactoryMethod:(id)sender;
|
||||
- (IBAction) setConversionMethod:(id)sender;
|
||||
- (IBAction) setInitArgument:(id)sender;
|
||||
|
||||
- (IBAction) setValueType:(id)sender;
|
||||
- (IBAction) setTimeZone:(id)sender;
|
||||
@end
|
||||
|
||||
|
|
|
@ -14,29 +14,23 @@
|
|||
_dataFlip, @"Data",
|
||||
_dateFlip, @"Date",
|
||||
_decimalFlip, @"Decimal Number",
|
||||
_doubleFlip, @"Double",
|
||||
_integerFlip, @"Integer",
|
||||
_numberFlip, @"Number",
|
||||
nil];
|
||||
|
||||
_valueTypeDict =
|
||||
[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
@"", @"",
|
||||
@"c", @"char",
|
||||
@"C", @"unsigned char",
|
||||
@"s", @"short",
|
||||
@"S", @"unsigned short",
|
||||
@"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",
|
||||
@"f", @"float",
|
||||
@"d", @"double",
|
||||
nil];
|
||||
_typeValueDict =
|
||||
[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
@"", @"",
|
||||
@"char", @"c",
|
||||
@"unsigned char", @"C",
|
||||
@"short", @"s",
|
||||
|
@ -51,36 +45,19 @@
|
|||
@"double", @"d",
|
||||
nil];
|
||||
|
||||
/*
|
||||
* class name = key, pop-up item = value,
|
||||
* "Custom" is not found,
|
||||
* double and integer are both NSNumbers, but handled specially,
|
||||
* double is the default if a value type is not specified.
|
||||
*/
|
||||
_classTitleDict =
|
||||
[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
@"String", @"NSString",
|
||||
@"Data", @"NSData",
|
||||
@"Double", @"NSNumber", // Integer and Double, Double is default.
|
||||
@"Number", @"NSNumber",
|
||||
@"Date", @"NSCalendarDate",
|
||||
@"Decimal Number", @"NSDecimalNumber",
|
||||
nil];
|
||||
|
||||
_titleClassDict =
|
||||
[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
@"NSString", @"String",
|
||||
@"NSData", @"Data",
|
||||
@"NSNumber", @"Double",
|
||||
@"NSNumber", @"Integer",
|
||||
@"NSNumber", @"Number",
|
||||
@"NSDecimalNumber", @"Decimal Number",
|
||||
@"NSCalendarDate", @"Date",
|
||||
nil];
|
||||
|
||||
_valueTypeTitleDict =
|
||||
[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
@"d", @"Double",
|
||||
@"i", @"Integer",
|
||||
nil];
|
||||
}
|
||||
|
||||
- (NSString *) _titleForPopUp
|
||||
|
@ -89,31 +66,16 @@
|
|||
NSString *valueType = [(EOAttribute *)[self selectedObject] valueType];
|
||||
NSString *ret;
|
||||
|
||||
if (valueType)
|
||||
{
|
||||
if ([vcn isEqual: @"NSNumber"])
|
||||
{
|
||||
if ([valueType isEqual:@"d"])
|
||||
return @"Double";
|
||||
else if ([valueType isEqual:@"i"])
|
||||
return @"Integer";
|
||||
}
|
||||
}
|
||||
ret = [_classTitleDict objectForKey:vcn];
|
||||
if (!ret)
|
||||
return @"Custom";
|
||||
ret = [_classTitleDict objectForKey:vcn];
|
||||
if (!ret)
|
||||
return @"Custom";
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
- (NSString *)_valueTypeForTitle:(NSString *)title
|
||||
{
|
||||
return [_valueTypeTitleDict objectForKey:title];
|
||||
return ret;
|
||||
}
|
||||
|
||||
- (NSString *)_classNameForTitle:(NSString *)title
|
||||
{
|
||||
return [_titleClassDict objectForKey:title];
|
||||
return [_classTitleDict objectForKey:title];
|
||||
}
|
||||
|
||||
- (NSBox *) _viewForTitle:(NSString *)title
|
||||
|
@ -141,21 +103,29 @@
|
|||
[(EOAttribute *)[self selectedObject] setExternalType:[sender stringValue]];
|
||||
}
|
||||
|
||||
- (IBAction) setValueClassNameAndType:(id)sender;
|
||||
- (IBAction) selectInternalDataType:(id)sender;
|
||||
{
|
||||
EOAttribute *obj = [self selectedObject];
|
||||
NSString *title = [_flipSelect titleOfSelectedItem];
|
||||
NSString *className = [self _classNameForTitle:title];
|
||||
NSString *valueType = [self _valueTypeForTitle:title];
|
||||
|
||||
if (![[obj valueClassName] isEqual:className])
|
||||
{
|
||||
[obj setValueClassName:className];
|
||||
}
|
||||
if (![[obj valueType] isEqual:valueType])
|
||||
|
||||
if ([className isEqual:@"NSNumber"])
|
||||
{
|
||||
[obj setValueType:valueType];
|
||||
if (![obj valueType])
|
||||
{
|
||||
[obj setValueType:@"d"];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
[obj setValueType:@""];
|
||||
}
|
||||
|
||||
[self refresh];
|
||||
}
|
||||
|
||||
|
@ -164,14 +134,10 @@
|
|||
EOAttribute *obj = [self selectedObject];
|
||||
NSString *title = [self _titleForPopUp];
|
||||
NSBox *flipTo = [self _viewForTitle:title];
|
||||
NSString *valType = [obj valueType];
|
||||
NSString *valueTypeName =
|
||||
[_typeValueDict objectForKey: valType ? valType : @""];
|
||||
|
||||
[_nameField setStringValue:[obj name]];
|
||||
[_extNameField setStringValue:[obj columnName]];
|
||||
[_extTypeField setStringValue:[obj externalType]];
|
||||
[_valueTypeSelect selectItemWithTitle:valueTypeName];
|
||||
[_flipSelect selectItemWithTitle:title];
|
||||
[flipTo setFrame: [_flipView frame]];
|
||||
[_internalData replaceSubview:_flipView with:flipTo];
|
||||
|
@ -212,13 +178,19 @@
|
|||
|
||||
}
|
||||
|
||||
- (void) updateInteger
|
||||
- (void) updateNumber
|
||||
{
|
||||
EOAttribute *obj = [self selectedObject];
|
||||
NSString *valType = [obj valueType];
|
||||
NSString *valueTypeName;
|
||||
|
||||
valueTypeName = [_valueTypeDict objectForKey: valType];
|
||||
[_valueTypeSelect selectItemWithTitle:valueTypeName];
|
||||
}
|
||||
|
||||
- (void) updateDate
|
||||
{
|
||||
// fixme
|
||||
|
||||
}
|
||||
|
||||
- (void) updateData
|
||||
|
@ -229,11 +201,6 @@
|
|||
NO_ZEROS(_data_width, tmp);
|
||||
}
|
||||
|
||||
- (void) updateDouble;
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (BOOL) canInspectObject:(id)obj
|
||||
{
|
||||
return [obj isKindOfClass:[EOAttribute class]];
|
||||
|
@ -241,8 +208,19 @@
|
|||
|
||||
- (IBAction) setValueType:(id)sender
|
||||
{
|
||||
id valueType = [_valueTypeDict objectForKey:[sender titleOfSelectedItem]];
|
||||
[(EOAttribute *)[self selectedObject] setValueType:valueType];
|
||||
EOAttribute *obj = [self selectedObject];
|
||||
NSString *valueType;
|
||||
|
||||
if (sender == _valueTypeSelect)
|
||||
{
|
||||
valueType = [_valueTypeDict objectForKey:[sender titleOfSelectedItem]];
|
||||
}
|
||||
else if (sender == self)
|
||||
{
|
||||
valueType = @"";
|
||||
}
|
||||
|
||||
[obj setValueType:valueType];
|
||||
}
|
||||
|
||||
- (IBAction) setTimeZone:(id)sender;
|
||||
|
@ -262,7 +240,7 @@
|
|||
|
||||
- (IBAction) setClassName:(id)sender;
|
||||
{
|
||||
[[self selectedObject] setValueClassName:[sender stringValue]];
|
||||
[(EOAttribute *)[self selectedObject] setValueClassName:[sender stringValue]];
|
||||
}
|
||||
|
||||
- (IBAction) setFactoryMethod:(id)sender;
|
||||
|
|
Loading…
Reference in a new issue