mirror of
https://github.com/gnustep/libs-gdl2.git
synced 2025-02-16 08:20:59 +00:00
* DBModeler/Inspectors/AttributeInspector.*
* DBModeler/Inspectors/GNUmakefile Moved to Renaissance for the Attribute Inspector git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@30280 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
51b728a2b8
commit
4983a5c38e
5 changed files with 503 additions and 129 deletions
|
@ -1,3 +1,8 @@
|
|||
2010-05-02 David Wetzel <dave@turbocat.de>
|
||||
* DBModeler/Inspectors/AttributeInspector.*
|
||||
* DBModeler/Inspectors/GNUmakefile
|
||||
Moved to Renaissance for the Attribute Inspector
|
||||
|
||||
2010-04-29 David Wetzel <dave@turbocat.de>
|
||||
* EOControl/EOMutableKnownKeyDictionary.m
|
||||
removed __PRETTY_FUNCTION__ from Asserts
|
||||
|
|
180
DBModeler/Inspectors/AttributeInspector.gsmarkup
Normal file
180
DBModeler/Inspectors/AttributeInspector.gsmarkup
Normal file
|
@ -0,0 +1,180 @@
|
|||
<?xml version="1.0"?>
|
||||
<!DOCTYPE gsmarkup>
|
||||
<gsmarkup>
|
||||
<objects>
|
||||
<window title="Inspector" width="268.0" heigth="365.0" resizable="no" autosaveName="Inspector" visible="no">
|
||||
<vbox>
|
||||
<label backgroundColor="white" selectable="no" textColor="555555">Nothing to Inspect</label>
|
||||
</vbox>
|
||||
</window>
|
||||
|
||||
<window id="window" title="Inspector" width="268.0" resizable="no" autosaveName="Inspector" visible="no">
|
||||
<vbox>
|
||||
<grid rowType="proportional" columnType="proportional">
|
||||
<gridRow>
|
||||
<label halign="right" selectable="no">Name:</label> <textField id="nameField" delegate="#NSOwner"></textField>
|
||||
</gridRow>
|
||||
<gridRow>
|
||||
<popUpButton autoenabledItems="no" target="#NSOwner" id="derivedPopUp" action="setDerived:" halign="right">
|
||||
<popUpButtonItem tag="0" title="Column" />
|
||||
<popUpButtonItem tag="1" title="Derived" />
|
||||
</popUpButton>
|
||||
<textField delegate="#NSOwner" id="extNameField" />
|
||||
</gridRow>
|
||||
<gridRow>
|
||||
<label halign="right" selectable="no">External Type:</label> <textField id="extTypeField" delegate="#NSOwner" />
|
||||
</gridRow>
|
||||
</grid>
|
||||
|
||||
<box title="Internal Data Type" topPadding="10" leftPadding="4" rightPadding="4" id="internalData">
|
||||
<vbox>
|
||||
<popUpButton target="#NSOwner" action="selectInternalDataType:" id="valueClassSelect">
|
||||
<popUpButtonItem tag="0" title="String" />
|
||||
<popUpButtonItem tag="1" title="Decimal Number" />
|
||||
<popUpButtonItem tag="2" title="Number" />
|
||||
<popUpButtonItem tag="3" title="Date" />
|
||||
<popUpButtonItem tag="4" title="Data" />
|
||||
<popUpButtonItem tag="5" title="Custom" />
|
||||
</popUpButton>
|
||||
<!-- width="254" halign="center" -->
|
||||
<view id="flipView" halign="wexpand" height="180" >
|
||||
<view/>
|
||||
</view>
|
||||
</vbox>
|
||||
</box>
|
||||
</vbox>
|
||||
|
||||
</window>
|
||||
|
||||
|
||||
<window title="Inspector" width="268.0" resizable="no" autosaveName="Inspector" visible="no">
|
||||
<vbox>
|
||||
<box title="Custom Flip" topPadding="10" leftPadding="15" rightPadding="15" id="customFlip">
|
||||
<grid rowType="proportional" columnType="proportional">
|
||||
<gridRow>
|
||||
<label halign="right" selectable="no">External Width:</label> <textField id="custom_width" delegate="#NSOwner" />
|
||||
</gridRow>
|
||||
<gridRow>
|
||||
<label halign="right" selectable="no">Class:</label> <textField id="custom_class" delegate="#NSOwner" />
|
||||
</gridRow>
|
||||
<gridRow>
|
||||
<label halign="right" selectable="no">Factory Method:</label> <textField id="custom_factory" delegate="#NSOwner" />
|
||||
</gridRow>
|
||||
<gridRow>
|
||||
<label halign="right" selectable="no">Conversion Meth.:</label> <textField id="custom_conversion" delegate="#NSOwner" />
|
||||
</gridRow>
|
||||
|
||||
<gridRow>
|
||||
<label halign="right" selectable="no">Init argument:</label>
|
||||
<popUpButton halign="left" target="#NSOwner" action="changeLevel:" id="custom_arg">
|
||||
<popUpButtonItem tag="0" title="NSData" />
|
||||
<popUpButtonItem tag="1" title="NSString" />
|
||||
<popUpButtonItem tag="2" title="Bytes" />
|
||||
</popUpButton>
|
||||
</gridRow>
|
||||
</grid>
|
||||
</box>
|
||||
|
||||
<box title="Data Flip" topPadding="10" leftPadding="15" rightPadding="15" id="dataFlip">
|
||||
<grid rowType="proportional" columnType="proportional">
|
||||
<gridRow>
|
||||
<label halign="right" selectable="no">External Width:</label> <textField id="data_width" delegate="#NSOwner" />
|
||||
</gridRow>
|
||||
</grid>
|
||||
</box>
|
||||
|
||||
<box title="String Flip" width="250.0" heigth="50" topPadding="10" leftPadding="15" rightPadding="15" id="stringFlip">
|
||||
<grid rowType="proportional" columnType="proportional">
|
||||
<gridRow>
|
||||
<label halign="right" selectable="no">External Width:</label> <textField id="string_width" delegate="#NSOwner" />
|
||||
</gridRow>
|
||||
</grid>
|
||||
</box>
|
||||
|
||||
<box title="Decimal Flip" topPadding="10" leftPadding="15" rightPadding="15" id="decimalFlip">
|
||||
<vbox>
|
||||
<grid rowType="proportional" columnType="proportional">
|
||||
<gridRow>
|
||||
<label halign="right" selectable="no">External Precision:</label> <textField id="decimal_precision" delegate="#NSOwner" />
|
||||
</gridRow>
|
||||
<gridRow>
|
||||
<label halign="right" selectable="no">External Scale:</label> <textField id="decimal_scale" delegate="#NSOwner" />
|
||||
</gridRow>
|
||||
</grid>
|
||||
<label color="grey">12345.67 has a precision of 7</label>
|
||||
<label color="grey">and a scale of 2.</label>
|
||||
</vbox>
|
||||
</box>
|
||||
|
||||
<box title="Number Flip" topPadding="10" leftPadding="15" rightPadding="15" id="numberFlip">
|
||||
<vbox>
|
||||
<grid rowType="proportional">
|
||||
<gridRow>
|
||||
<label halign="right" selectable="no">Value Type:</label>
|
||||
<popUpButton halign="left" target="#NSOwner" action="changeValueType:" id="valueTypePopUp">
|
||||
<popUpButtonItem tag="0" title="int" />
|
||||
<popUpButtonItem tag="1" title="double" />
|
||||
<popUpButtonItem tag="2" title="float" />
|
||||
<popUpButtonItem tag="3" title="char" />
|
||||
<popUpButtonItem tag="4" title="short" />
|
||||
<popUpButtonItem tag="5" title="unsigned int" />
|
||||
<popUpButtonItem tag="6" title="unsigned char" />
|
||||
<popUpButtonItem tag="7" title="unsigned short" />
|
||||
<popUpButtonItem tag="8" title="long" />
|
||||
<popUpButtonItem tag="9" title="unsigned long" />
|
||||
<popUpButtonItem tag="10" title="long long" />
|
||||
<popUpButtonItem tag="11" title="uns. long long" />
|
||||
</popUpButton>
|
||||
</gridRow>
|
||||
</grid>
|
||||
<vbox>
|
||||
<label textColor="red">Never use float or double for</label>
|
||||
<label textColor="red">monetary values as rounding will</label>
|
||||
<label textColor="red">lead to non-expected results.</label>
|
||||
</vbox>
|
||||
</vbox>
|
||||
|
||||
</box>
|
||||
|
||||
|
||||
<box title="Date Flip" topPadding="10" leftPadding="15" rightPadding="15" id="dateFlip">
|
||||
<vbox>
|
||||
<label textColor="red">Nothing here right now.</label>
|
||||
</vbox>
|
||||
</box>
|
||||
|
||||
|
||||
</vbox>
|
||||
|
||||
</window>
|
||||
|
||||
|
||||
</objects>
|
||||
|
||||
<connectors>
|
||||
<outlet source="#NSOwner" target="#window" key="window"/>
|
||||
<outlet source="#NSOwner" target="#derivedPopUp" key="derivedPopUp"/>
|
||||
<outlet source="#NSOwner" target="#nameField" key="nameField"/>
|
||||
<outlet source="#NSOwner" target="#extNameField" key="extNameField"/>
|
||||
<outlet source="#NSOwner" target="#extTypeField" key="extTypeField"/>
|
||||
<outlet source="#NSOwner" target="#internalData" key="internalData"/>
|
||||
<outlet source="#NSOwner" target="#customFlip" key="customFlip"/>
|
||||
<outlet source="#NSOwner" target="#decimalFlip" key="decimalFlip"/>
|
||||
<outlet source="#NSOwner" target="#data_width" key="data_width"/>
|
||||
<outlet source="#NSOwner" target="#dataFlip" key="dataFlip"/>
|
||||
<outlet source="#NSOwner" target="#stringFlip" key="stringFlip"/>
|
||||
<outlet source="#NSOwner" target="#valueClassSelect" key="valueClassSelect"/>
|
||||
<outlet source="#NSOwner" target="#flipView" key="flipView"/>
|
||||
<outlet source="#NSOwner" target="#decimal_scale" key="decimal_scale"/>
|
||||
<outlet source="#NSOwner" target="#decimal_precision" key="decimal_precision"/>
|
||||
<outlet source="#NSOwner" target="#string_width" key="string_width"/>
|
||||
<outlet source="#NSOwner" target="#numberFlip" key="numberFlip"/>
|
||||
<outlet source="#NSOwner" target="#valueTypePopUp" key="valueTypePopUp"/>
|
||||
<outlet source="#NSOwner" target="#dateFlip" key="dateFlip"/>
|
||||
<outlet source="#NSOwner" target="#custom_width" key="custom_width"/>
|
||||
<outlet source="#NSOwner" target="#custom_class" key="custom_class"/>
|
||||
<outlet source="#NSOwner" target="#custom_factory" key="custom_factory"/>
|
||||
<outlet source="#NSOwner" target="#custom_conversion" key="custom_conversion"/>
|
||||
<outlet source="#NSOwner" target="#custom_arg" key="custom_arg"/>
|
||||
</connectors>
|
||||
</gsmarkup>
|
|
@ -45,37 +45,39 @@
|
|||
{
|
||||
IBOutlet NSTextField *_extNameField;
|
||||
IBOutlet NSTextField *_extTypeField;
|
||||
IBOutlet NSPopUpButton *_valueTypeSelect;
|
||||
IBOutlet NSPopUpButton *_derivedPopUp; // or column
|
||||
IBOutlet NSPopUpButton *_valueClassSelect;
|
||||
IBOutlet NSPopUpButton *_valueTypePopUp; // int, float, ...
|
||||
IBOutlet NSPopUpButton *_flipSelect;// select which valueClassName/flip
|
||||
IBOutlet NSBox *_flipView; // gets replaced with a *Flip...
|
||||
IBOutlet NSBox *_internalData;
|
||||
IBOutlet NSTextField *_nameField;
|
||||
IBOutlet NSBox *_numberFlip; // to edit number properties
|
||||
IBOutlet NSTextField *_nameField;
|
||||
IBOutlet NSBox *_customFlip; // default
|
||||
IBOutlet NSBox *_dataFlip;
|
||||
IBOutlet NSBox *_dateFlip;
|
||||
IBOutlet NSBox *_decimalFlip;
|
||||
IBOutlet NSBox *_stringFlip;
|
||||
|
||||
IBOutlet NSTextField *_custom_width;
|
||||
IBOutlet NSTextField *_custom_class;
|
||||
IBOutlet NSTextField *_custom_factory;
|
||||
IBOutlet NSTextField *_custom_conversion;
|
||||
IBOutlet NSPopUpButton *_custom_arg;
|
||||
|
||||
IBOutlet NSTextField *_string_width;
|
||||
|
||||
IBOutlet NSTextField *_decimal_precision;
|
||||
IBOutlet NSTextField *_decimal_scale;
|
||||
|
||||
IBOutlet NSTextField *_data_width;
|
||||
|
||||
IBOutlet NSButton *_date_tz;
|
||||
|
||||
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;
|
||||
|
||||
NSTextField *_custom_width;
|
||||
NSTextField *_custom_class;
|
||||
NSTextField *_custom_factory;
|
||||
NSTextField *_custom_conversion;
|
||||
NSPopUpButton *_custom_arg;
|
||||
|
||||
NSTextField *_string_width;
|
||||
|
||||
NSTextField *_decimal_precision;
|
||||
NSTextField *_decimal_width;
|
||||
|
||||
NSTextField *_data_width;
|
||||
|
||||
NSButton *_date_tz;
|
||||
}
|
||||
/* generic */
|
||||
- (IBAction) selectInternalDataType:(id)sender;
|
||||
|
@ -89,7 +91,6 @@
|
|||
- (IBAction) setClassName:(id)sender;
|
||||
- (IBAction) setFactoryMethod:(id)sender;
|
||||
- (IBAction) setConversionMethod:(id)sender;
|
||||
- (IBAction) setInitArgument:(id)sender;
|
||||
- (IBAction) setValueType:(id)sender;
|
||||
- (IBAction) setTimeZone:(id)sender;
|
||||
@end
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
|
||||
Author: Matt Rice <ratmice@gmail.com>
|
||||
Date: 2005, 2006
|
||||
Author: David Wetzel <dave@turbocat.de>
|
||||
Date: 2010
|
||||
|
||||
This file is part of DBModeler.
|
||||
|
||||
|
@ -30,23 +32,22 @@
|
|||
|
||||
#ifndef GNUSTEP
|
||||
#include <GNUstepBase/GNUstep.h>
|
||||
#include <GNUstepBase/GSCategories.h>
|
||||
#endif
|
||||
|
||||
#define NO_ZEROS(x, i) i ? [x setIntValue:i] : [x setStringValue:@""];
|
||||
|
||||
@implementation AttributeInspector
|
||||
- (void) awakeFromNib
|
||||
- (void) awakeFromGSMarkup //awakeFromNib
|
||||
{
|
||||
RETAIN(_internalData);
|
||||
_flipDict =
|
||||
[[NSDictionary alloc] initWithObjectsAndKeys:
|
||||
_stringFlip, @"String",
|
||||
_customFlip, @"Custom",
|
||||
_dataFlip, @"Data",
|
||||
_dateFlip, @"Date",
|
||||
_decimalFlip, @"Decimal Number",
|
||||
_numberFlip, @"Number",
|
||||
[_stringFlip contentView], @"NSString",
|
||||
[_customFlip contentView], @"Custom",
|
||||
[_dataFlip contentView], @"NSData",
|
||||
[_dateFlip contentView], @"NSCalendarDate",
|
||||
[_decimalFlip contentView], @"NSDecimalNumber",
|
||||
[_numberFlip contentView], @"NSNumber",
|
||||
nil];
|
||||
|
||||
_valueTypeDict =
|
||||
|
@ -79,17 +80,13 @@
|
|||
|
||||
_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",
|
||||
@"0", @"NSString",
|
||||
@"1", @"NSDecimalNumber",
|
||||
@"2", @"NSNumber",
|
||||
@"3", @"NSCalendarDate",
|
||||
@"4", @"NSData",
|
||||
nil];
|
||||
|
||||
}
|
||||
|
||||
- (NSString *) _titleForPopUp
|
||||
|
@ -97,7 +94,10 @@
|
|||
NSString *vcn = [(EOAttribute *)[self selectedObject] valueClassName];
|
||||
NSString *ret;
|
||||
|
||||
NSLog(@"_titleForPopUp:vcn '%@' ",vcn);
|
||||
|
||||
ret = [_classTitleDict objectForKey:vcn];
|
||||
NSLog(@"_titleForPopUp:ret '%@' ",ret);
|
||||
if (!ret)
|
||||
return @"Custom";
|
||||
|
||||
|
@ -111,7 +111,14 @@
|
|||
|
||||
- (NSBox *) _viewForTitle:(NSString *)title
|
||||
{
|
||||
return (NSBox *)[_flipDict objectForKey:title];
|
||||
|
||||
NSBox * myview = [_flipDict objectForKey:title];
|
||||
|
||||
if (!myview) {
|
||||
myview = [_flipDict objectForKey:@"Custom"];
|
||||
}
|
||||
|
||||
return myview;
|
||||
}
|
||||
|
||||
- (float) displayOrder
|
||||
|
@ -136,78 +143,258 @@
|
|||
|
||||
- (IBAction) selectInternalDataType:(id)sender;
|
||||
{
|
||||
EOAttribute *obj = [self selectedObject];
|
||||
NSString *title = [_flipSelect titleOfSelectedItem];
|
||||
NSString *className = [self _classNameForTitle:title];
|
||||
|
||||
if (![[obj valueClassName] isEqual:className])
|
||||
{
|
||||
[obj setValueClassName:className];
|
||||
}
|
||||
|
||||
if ([className isEqual:@"NSNumber"])
|
||||
{
|
||||
if (![obj valueType])
|
||||
{
|
||||
[obj setValueType:@"d"];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
[obj setValueType:@""];
|
||||
}
|
||||
EOAttribute *attr = [self selectedObject];
|
||||
|
||||
switch ([[sender selectedItem] tag]) {
|
||||
case 0:
|
||||
[attr setValueClassName:@"NSString"];
|
||||
break;
|
||||
case 1:
|
||||
[attr setValueClassName:@"NSDecimalNumber"];
|
||||
break;
|
||||
case 2:
|
||||
[attr setValueClassName:@"NSNumber"];
|
||||
break;
|
||||
case 3:
|
||||
[attr setValueClassName:@"NSCalendarDate"];
|
||||
break;
|
||||
case 4:
|
||||
[attr setValueClassName:@"NSData"];
|
||||
break;
|
||||
case 5:
|
||||
[attr setValueClassName:@"Custom"];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
[self refresh];
|
||||
}
|
||||
|
||||
- (void) putSubViewBack
|
||||
{
|
||||
NSView * subView = nil;
|
||||
|
||||
if ([[_flipView subviews] count] > 0) {
|
||||
|
||||
subView = [[_flipView subviews] objectAtIndex:0];
|
||||
|
||||
[subView removeFromSuperviewWithoutNeedingDisplay];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
- (IBAction) changeValueType:(NSPopUpButton*) sender
|
||||
{
|
||||
EOAttribute * attr = [self selectedObject];
|
||||
|
||||
switch ([[sender selectedItem] tag]) {
|
||||
case 0: /* int */
|
||||
[attr setValueType:@"i"];
|
||||
break;
|
||||
case 1: /* double */
|
||||
[attr setValueType:@"d"];
|
||||
break;
|
||||
case 2: /* float */
|
||||
[attr setValueType:@"f"];
|
||||
break;
|
||||
case 3: /* char */
|
||||
[attr setValueType:@"c"];
|
||||
break;
|
||||
case 4: /* short */
|
||||
[attr setValueType:@"s"];
|
||||
break;
|
||||
case 5: /* unsigned int */
|
||||
[attr setValueType:@"I"];
|
||||
break;
|
||||
case 6: /* unsigned char */
|
||||
[attr setValueType:@"C"];
|
||||
break;
|
||||
case 7: /* unsigned short */
|
||||
[attr setValueType:@"S"];
|
||||
break;
|
||||
case 8: /* long */
|
||||
[attr setValueType:@"l"];
|
||||
break;
|
||||
case 9: /* unsigned long */
|
||||
[attr setValueType:@"L"];
|
||||
break;
|
||||
case 10: /* long long */
|
||||
[attr setValueType:@"u"];
|
||||
break;
|
||||
case 11: /* unsigned long long */
|
||||
[attr setValueType:@"U"];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
- (void) _updateValueTypePopUpWithAttribute:(EOAttribute*) attr
|
||||
{
|
||||
NSString *valueType = [attr valueType];
|
||||
unichar valueTypeChar;
|
||||
|
||||
if ((valueType) && ([valueType length])) {
|
||||
valueTypeChar = [valueType characterAtIndex:0];
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
NSInteger tagValue = 0;
|
||||
|
||||
switch (valueTypeChar) {
|
||||
case 'i':
|
||||
tagValue = 0;
|
||||
break;
|
||||
case 'd':
|
||||
tagValue = 1;
|
||||
break;
|
||||
case 'f':
|
||||
tagValue = 2;
|
||||
break;
|
||||
case 'c':
|
||||
tagValue = 3;
|
||||
break;
|
||||
case 's':
|
||||
tagValue = 4;
|
||||
break;
|
||||
case 'I':
|
||||
tagValue = 5;
|
||||
break;
|
||||
case 'C':
|
||||
tagValue = 6;
|
||||
break;
|
||||
case 'S':
|
||||
tagValue = 7;
|
||||
break;
|
||||
case 'l':
|
||||
tagValue = 8;
|
||||
break;
|
||||
case 'L':
|
||||
tagValue = 9;
|
||||
break;
|
||||
case 'u':
|
||||
tagValue = 10;
|
||||
break;
|
||||
case 'U':
|
||||
tagValue = 11;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
[_valueTypePopUp selectItemWithTag:tagValue];
|
||||
|
||||
}
|
||||
|
||||
- (void) _updateStringViewWithAttribute:(EOAttribute*) attr
|
||||
{
|
||||
NO_ZEROS(_string_width, [attr width]);
|
||||
}
|
||||
|
||||
|
||||
- (void) _updateDecimalNumberViewWithAttribute:(EOAttribute*) attr
|
||||
|
||||
{
|
||||
NO_ZEROS(_decimal_scale, [attr scale]);
|
||||
NO_ZEROS(_decimal_precision, [attr precision]);
|
||||
}
|
||||
|
||||
- (void) _updateDataViewWithAttribute:(EOAttribute*) attr
|
||||
{
|
||||
NO_ZEROS(_data_width, [attr width]);
|
||||
}
|
||||
|
||||
- (void) _updateCustomViewWithAttribute:(EOAttribute*) attr
|
||||
{
|
||||
NSString * tmpStr = nil;
|
||||
NO_ZEROS(_custom_width, [attr width]);
|
||||
[_custom_class setStringValue:[attr valueClassName]];
|
||||
|
||||
tmpStr = [attr valueFactoryMethodName];
|
||||
|
||||
if (!tmpStr) {
|
||||
[attr setValueFactoryMethodName:@""];
|
||||
}
|
||||
|
||||
tmpStr = [attr adaptorValueConversionMethodName];
|
||||
|
||||
if (!tmpStr) {
|
||||
[attr setAdaptorValueConversionMethodName:@""];
|
||||
}
|
||||
|
||||
|
||||
[_custom_factory setStringValue:[attr valueFactoryMethodName]];
|
||||
[_custom_conversion setStringValue:[attr adaptorValueConversionMethodName]];
|
||||
[_custom_arg selectItemWithTag:[attr factoryMethodArgumentType]];
|
||||
}
|
||||
|
||||
|
||||
- (void) _updateValueClassPopUpWithAttribute:(EOAttribute*) attr
|
||||
{
|
||||
NSString * tagString = [_classTitleDict objectForKey:[attr valueClassName]];
|
||||
NSInteger tagValue = 0;
|
||||
|
||||
if (!tagString) {
|
||||
tagValue = 5; // custom
|
||||
[self _updateCustomViewWithAttribute:attr];
|
||||
} else {
|
||||
tagValue = [tagString integerValue];
|
||||
|
||||
switch (tagValue) {
|
||||
case 0: // NSString
|
||||
[self _updateStringViewWithAttribute:attr];
|
||||
break;
|
||||
case 1: // NSDecimalNumber
|
||||
[self _updateDecimalNumberViewWithAttribute:attr];
|
||||
break;
|
||||
case 2: // NSNumber
|
||||
[self _updateValueTypePopUpWithAttribute:attr];
|
||||
break;
|
||||
case 3: // NSCalendarDate
|
||||
// nothing for now
|
||||
break;
|
||||
case 4: // NSData
|
||||
[self _updateDataViewWithAttribute:attr];
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
[_valueClassSelect selectItemWithTag:tagValue];
|
||||
}
|
||||
|
||||
- (void) refresh
|
||||
{
|
||||
EOAttribute *obj = [self selectedObject];
|
||||
NSString *title = [self _titleForPopUp];
|
||||
NSString *title = [obj valueClassName];
|
||||
NSBox *flipTo = [self _viewForTitle:title];
|
||||
|
||||
[_nameField setStringValue:[obj name]];
|
||||
[_extNameField setStringValue:[obj columnName]];
|
||||
[_extTypeField setStringValue:[obj externalType]];
|
||||
[_flipSelect selectItemWithTitle:title];
|
||||
[flipTo setFrame: [_flipView frame]];
|
||||
[_internalData replaceSubview:_flipView with:flipTo];
|
||||
_flipView = flipTo;
|
||||
[self performSelector:
|
||||
NSSelectorFromString([@"update" stringByAppendingString:[title stringByReplacingString:@" " withString:@""]])];
|
||||
|
||||
if ([obj isDerived]) {
|
||||
[_derivedPopUp selectItemWithTag:1];
|
||||
} else {
|
||||
[_derivedPopUp selectItemWithTag:0];
|
||||
}
|
||||
|
||||
[self putSubViewBack];
|
||||
[_flipView setNeedsDisplay:YES];
|
||||
|
||||
[_flipView addSubview:flipTo];
|
||||
|
||||
[self _updateValueClassPopUpWithAttribute:obj];
|
||||
|
||||
}
|
||||
|
||||
- (void) updateString
|
||||
{
|
||||
int tmp;
|
||||
tmp = [[self selectedObject] width];
|
||||
NO_ZEROS(_string_width,tmp);
|
||||
}
|
||||
|
||||
- (void) updateCustom
|
||||
{
|
||||
EOAttribute *obj = [self selectedObject];
|
||||
int tmp;
|
||||
tmp = [obj width];
|
||||
NO_ZEROS(_custom_width, tmp);
|
||||
[_custom_class setStringValue:[obj valueClassName]];
|
||||
[_custom_factory setStringValue:[obj valueFactoryMethodName]];
|
||||
[_custom_conversion setStringValue:[obj adaptorValueConversionMethodName]];
|
||||
[_custom_arg selectItemAtIndex:
|
||||
[_custom_arg indexOfItemWithTag: [obj factoryMethodArgumentType]]];
|
||||
}
|
||||
|
||||
- (void) updateDecimalNumber
|
||||
{
|
||||
EOAttribute *obj = [self selectedObject];
|
||||
int tmp;
|
||||
|
||||
tmp = [obj width];
|
||||
NO_ZEROS(_decimal_width, tmp);
|
||||
tmp = [obj precision];
|
||||
NO_ZEROS(_decimal_precision, tmp);
|
||||
|
||||
}
|
||||
|
||||
- (void) updateNumber
|
||||
{
|
||||
|
@ -216,24 +403,14 @@
|
|||
NSString *valueTypeName;
|
||||
|
||||
valueTypeName = [_valueTypeDict objectForKey: valType];
|
||||
[_valueTypeSelect selectItemWithTitle:valueTypeName];
|
||||
NSLog(@"updateNumber %@", valueTypeName);
|
||||
[_valueClassSelect selectItemWithTitle:valueTypeName];
|
||||
}
|
||||
|
||||
- (void) updateDate
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void) updateData
|
||||
{
|
||||
int tmp;
|
||||
|
||||
tmp = [[self selectedObject] width];
|
||||
NO_ZEROS(_data_width, tmp);
|
||||
}
|
||||
|
||||
- (BOOL) canInspectObject:(id)obj
|
||||
{
|
||||
NSLog(@"%s: %@", __PRETTY_FUNCTION__, obj);
|
||||
return [obj isKindOfClass:[EOAttribute class]];
|
||||
}
|
||||
|
||||
|
@ -242,23 +419,33 @@
|
|||
EOAttribute *obj = [self selectedObject];
|
||||
NSString *valueType = nil;
|
||||
|
||||
if (sender == _valueTypeSelect)
|
||||
{
|
||||
valueType = [_valueTypeDict objectForKey:[sender titleOfSelectedItem]];
|
||||
}
|
||||
else if (sender == self)
|
||||
{
|
||||
valueType = @"";
|
||||
}
|
||||
|
||||
[obj setValueType:valueType];
|
||||
}
|
||||
|
||||
- (IBAction) setDerived:(id)sender
|
||||
{
|
||||
NSLog(@"%s:%@",__PRETTY_FUNCTION__, sender);
|
||||
// EOAttribute *obj = [self selectedObject];
|
||||
|
||||
// if ([sender tag] == 0) { // Column
|
||||
// [obj setIsDerived:NO];
|
||||
// } else {
|
||||
// [obj setIsDerived:YES];
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
- (IBAction) setTimeZone:(id)sender;
|
||||
{
|
||||
// fixme
|
||||
}
|
||||
|
||||
- (IBAction) changeLevel:(id)sender;
|
||||
{
|
||||
[(EOAttribute *)[self selectedObject] setFactoryMethodArgumentType:[[sender selectedItem] tag]];
|
||||
}
|
||||
|
||||
- (IBAction) setWidth:(id)sender;
|
||||
{
|
||||
[(EOAttribute *)[self selectedObject] setWidth:[sender intValue]];
|
||||
|
@ -269,6 +456,11 @@
|
|||
[(EOAttribute *)[self selectedObject] setPrecision:[sender intValue]];
|
||||
}
|
||||
|
||||
- (IBAction) setScale:(id)sender;
|
||||
{
|
||||
[(EOAttribute *)[self selectedObject] setScale:[sender intValue]];
|
||||
}
|
||||
|
||||
- (IBAction) setClassName:(id)sender;
|
||||
{
|
||||
[(EOAttribute *)[self selectedObject] setValueClassName:[sender stringValue]];
|
||||
|
@ -285,11 +477,6 @@
|
|||
[[self selectedObject] setAdaptorValueConversionMethodName:[sender stringValue]];
|
||||
}
|
||||
|
||||
- (IBAction) setInitArgument:(id)sender
|
||||
{
|
||||
[[self selectedObject] setFactoryMethodArgumentType:[[sender selectedItem] tag]];
|
||||
}
|
||||
|
||||
- (void) controlTextDidEndEditing:(NSNotification *)notif
|
||||
{
|
||||
id obj = [notif object];
|
||||
|
@ -302,9 +489,10 @@
|
|||
[self setName:_nameField];
|
||||
else if (obj == _custom_width
|
||||
|| obj == _data_width
|
||||
|| obj == _decimal_width
|
||||
|| obj == _string_width)
|
||||
[self setWidth:_custom_width];
|
||||
[self setWidth:obj];
|
||||
else if (obj == _decimal_scale)
|
||||
[self setScale:obj];
|
||||
else if (obj == _decimal_precision)
|
||||
[self setPrecision:_decimal_precision];
|
||||
else if (obj == _custom_class)
|
||||
|
|
|
@ -37,7 +37,7 @@ RelationshipInspector.gorm \
|
|||
RelationshipInspector.tiff
|
||||
Inspectors_OBJC_FILES+=RelationshipInspector.m
|
||||
|
||||
Inspectors_RESOURCE_FILES+=AttributeInspector.gorm
|
||||
Inspectors_RESOURCE_FILES+=AttributeInspector.gorm AttributeInspector.gsmarkup
|
||||
Inspectors_OBJC_FILES+=AttributeInspector.m
|
||||
|
||||
Inspectors_RESOURCE_FILES+=AdvancedEntityInspector.gorm
|
||||
|
|
Loading…
Reference in a new issue