* DBModeler/Inspectors/AttributeInspector.h/m: implement

valueType
        pop-up button, and add macro to clean up some code.
        * DBModeler/Inspectors/AttributeInspector.gorm: Ditto.




git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@23535 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
Matt Rice 2006-09-16 14:33:20 +00:00
parent 554b600357
commit 05f8a3e375
5 changed files with 66 additions and 16 deletions

View file

@ -9,6 +9,10 @@
* DBModeler/GNUmakefile: Add new file.
* DBModeler/DefaultColumnProvider.m: Set column header image.
* DBModeler/Inspectors/AttributeInspector.h/m: implement valueType
pop-up button, and add macro to clean up some code.
* DBModeler/Inspectors/AttributeInspector.gorm: Ditto.
2006-09-16 David Ayers <ayers@fsfe.org>
* EOAccess/EOAttribute.[hm]: Add documentation.

View file

@ -12,7 +12,8 @@
"setInitArgument:",
"setPrecision:",
"setWidth:",
"setTimeZone:"
"setTimeZone:",
"setValueType:"
);
Outlets = (
_extNameField,
@ -37,7 +38,8 @@
_data_width,
_decimal_precision,
_decimal_width,
_date_tz
_date_tz,
_valueTypeSelect
);
Super = EOMInspector;
};
@ -52,7 +54,7 @@
};
FirstResponder = {
Actions = (
"setTimeZone:",
"setValueType:",
"setClassName:",
"setConversionMethod:",
"setExternalName:",
@ -61,6 +63,7 @@
"setInitArgument:",
"setName:",
"setPrecision:",
"setTimeZone:",
"setValueClassNameAndType:",
"setWidth:"
);

View file

@ -12,6 +12,7 @@
{
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;
@ -21,7 +22,9 @@
NSDictionary *_classTitleDict;
NSDictionary *_titleClassDict;
NSDictionary *_valueTypeTitleDict;
NSDictionary *_valueTypeDict;
NSDictionary *_typeValueDict;
IBOutlet NSBox *_customFlip; // default
IBOutlet NSBox *_dataFlip;
IBOutlet NSBox *_dateFlip;

View file

@ -1,6 +1,8 @@
#include "AttributeInspector.h"
#include <Foundation/NSObjCRuntime.h>
#define NO_ZEROS(x, i) i ? [x setIntValue:i] : [x setStringValue:@""];
@implementation AttributeInspector
- (void) awakeFromNib
{
@ -15,7 +17,40 @@
_doubleFlip, @"Double",
_integerFlip, @"Integer",
nil];
_valueTypeDict =
[[NSDictionary alloc] initWithObjectsAndKeys:
@"", @"",
@"c", @"char",
@"C", @"unsigned char",
@"s", @"short",
@"S", @"unsigned short",
@"i", @"int",
@"I", @"unsigned int",
@"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",
@"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];
/*
* class name = key, pop-up item = value,
* "Custom" is not found,
@ -129,10 +164,14 @@
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];
@ -145,8 +184,7 @@
{
int tmp;
tmp = [[self selectedObject] width];
tmp ? [_string_width setIntValue:tmp]
: [_string_width setStringValue:@""];
NO_ZEROS(_string_width,tmp);
}
- (void) updateCustom
@ -154,8 +192,7 @@
EOAttribute *obj = [self selectedObject];
int tmp;
tmp = [obj width];
tmp ? [_custom_width setIntValue:tmp]
: [_custom_width setStringValue:@""];
NO_ZEROS(_custom_width, tmp);
[_custom_class setStringValue:[obj valueClassName]];
[_custom_factory setStringValue:[obj valueFactoryMethodName]];
[_custom_conversion setStringValue:[obj adaptorValueConversionMethodName]];
@ -169,11 +206,9 @@
int tmp;
tmp = [obj width];
tmp ? [_decimal_width setIntValue:tmp]
: [_decimal_width setStringValue:@""];
NO_ZEROS(_decimal_width, tmp);
tmp = [obj precision];
tmp ? [_decimal_precision setIntValue:[obj width]]
: [_decimal_precision setStringValue:@""];
NO_ZEROS(_decimal_precision, tmp);
}
@ -191,8 +226,7 @@
int tmp;
tmp = [[self selectedObject] width];
tmp ? [_data_width setIntValue:tmp]
: [_data_width setStringValue:@""];
NO_ZEROS(_data_width, tmp);
}
- (void) updateDouble;
@ -205,6 +239,12 @@
return [obj isKindOfClass:[EOAttribute class]];
}
- (IBAction) setValueType:(id)sender
{
id valueType = [_valueTypeDict objectForKey:[sender titleOfSelectedItem]];
[(EOAttribute *)[self selectedObject] setValueType:valueType];
}
- (IBAction) setTimeZone:(id)sender;
{
// fixme