mirror of
https://github.com/gnustep/libs-gdl2.git
synced 2025-02-19 17:50:47 +00:00
* GNUmakefile: Compile EOInterface, EOModeler, DBModeler,
GDL2Palette if gui is installed. * EOModeler/EOModelExtensions.h: Update copyright header. * EOModeler/EOModelExtensions.m: Ditto. * EOModeler/GNUmakefile: Make EOModeler a native-library, add new files. * EOModeler/Makefile.preamble: Change link flag to use FND_LIBS. * EOModeler/EODefines.h: New file, initial implementation. * EOModeler/EOMInspector.h/m: Ditto. * EOModeler/EOMInspectorController.h/m: Ditto. * EOModeler/EOModelerApp.h/m: Ditto. * EOModeler/EOModelerDocument.h/m: Ditto. * EOModeler/EOModelerEditor.h/m: Ditto. * DBModeler: New directory. * DBModeler/COPYING: New file... * DBModeler/AdaptorsPanel.h/m: New files. * DBModeler/DefaultColumnProvider.h/m: Ditto. * DBModeler/EOAdditions.h/m: Ditto. * DBModeler/KVDataSource.h/m: Ditto. * DBModeler/MainModelEdtior.h/m: Ditto. * DBModeler/Modeler.m: Ditto. * DBModeler/ModelerAttributeEditor.h/m: Ditto. * DBModeler/ModelerTableEmbedibleEditor.h/m: Ditto. * DBModeler/main.m: Ditto. * DBModeler/GNUmakefile: Ditto. * DBModeler/Resources: New directory. * DBModeler/Resources/ModelDrag.tiff: New file. * DBModeler/Resources/ClassProperty_On.tiff: Ditto. * DBModeler/Resources/Key_On.tiff: Ditto. * DBModeler/Inspectors: New directory. * DBModeler/Inspectors/RelationshipInspector.h/m: New files. * DBModeler/Inspectors/AttributeInspector.h/m: Ditto. * DBModeler/Inspectors/RelationshipInspector.gorm: New gorm directory. * DBModeler/Inspectors/AttributeInspector.gorm: Ditto. * GDL2Palette: New directory. * GDL2Palette/GNUmakefile: New file. * GDL2Palette/ConnectionInspector.h/m: Ditto. * GDL2Palette/Foundation+Categories.h/m: Ditto. * GDL2Palette/IB+Categories.m: Ditto. * GDL2Palette/Palette.h/m: Ditto. * GDL2Palette/ResourceManager.h/m: Ditto. * GDL2Palette/GDL2ConnectionInspector.gorm: Ditto. * GDL2Palette/GDL2Palette.tiff: Ditto * GDL2Palette/palette.table git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/gdl2/trunk@21223 72102866-910b-0410-8b05-ffd578937521
This commit is contained in:
parent
e205cd1324
commit
94ffb94a6c
17 changed files with 1750 additions and 23 deletions
46
ChangeLog
46
ChangeLog
|
@ -1,3 +1,49 @@
|
|||
2005-05-11 Matt Rice <ratmice@yahoo.com>
|
||||
|
||||
* GNUmakefile: Compile EOInterface, EOModeler, DBModeler, GDL2Palette
|
||||
if gui is installed.
|
||||
* EOModeler/EOModelExtensions.h: Update copyright header.
|
||||
* EOModeler/EOModelExtensions.m: Ditto.
|
||||
* EOModeler/GNUmakefile: Make EOModeler a native-library, add new files.
|
||||
* EOModeler/Makefile.preamble: Change link flag to use FND_LIBS.
|
||||
* EOModeler/EODefines.h: New file, initial implementation.
|
||||
* EOModeler/EOMInspector.h/m: Ditto.
|
||||
* EOModeler/EOMInspectorController.h/m: Ditto.
|
||||
* EOModeler/EOModelerApp.h/m: Ditto.
|
||||
* EOModeler/EOModelerDocument.h/m: Ditto.
|
||||
* EOModeler/EOModelerEditor.h/m: Ditto.
|
||||
* DBModeler: New directory.
|
||||
* DBModeler/COPYING: New file...
|
||||
* DBModeler/AdaptorsPanel.h/m: New files.
|
||||
* DBModeler/DefaultColumnProvider.h/m: Ditto.
|
||||
* DBModeler/EOAdditions.h/m: Ditto.
|
||||
* DBModeler/KVDataSource.h/m: Ditto.
|
||||
* DBModeler/MainModelEdtior.h/m: Ditto.
|
||||
* DBModeler/Modeler.m: Ditto.
|
||||
* DBModeler/ModelerAttributeEditor.h/m: Ditto.
|
||||
* DBModeler/ModelerTableEmbedibleEditor.h/m: Ditto.
|
||||
* DBModeler/main.m: Ditto.
|
||||
* DBModeler/GNUmakefile: Ditto.
|
||||
* DBModeler/Resources: New directory.
|
||||
* DBModeler/Resources/ModelDrag.tiff: New file.
|
||||
* DBModeler/Resources/ClassProperty_On.tiff: Ditto.
|
||||
* DBModeler/Resources/Key_On.tiff: Ditto.
|
||||
* DBModeler/Inspectors: New directory.
|
||||
* DBModeler/Inspectors/RelationshipInspector.h/m: New files.
|
||||
* DBModeler/Inspectors/AttributeInspector.h/m: Ditto.
|
||||
* DBModeler/Inspectors/RelationshipInspector.gorm: New gorm directory.
|
||||
* DBModeler/Inspectors/AttributeInspector.gorm: Ditto.
|
||||
* GDL2Palette: New directory.
|
||||
* GDL2Palette/GNUmakefile: New file.
|
||||
* GDL2Palette/ConnectionInspector.h/m: Ditto.
|
||||
* GDL2Palette/Foundation+Categories.h/m: Ditto.
|
||||
* GDL2Palette/IB+Categories.m: Ditto.
|
||||
* GDL2Palette/Palette.h/m: Ditto.
|
||||
* GDL2Palette/ResourceManager.h/m: Ditto.
|
||||
* GDL2Palette/GDL2ConnectionInspector.gorm: Ditto.
|
||||
* GDL2Palette/GDL2Palette.tiff: Ditto
|
||||
* GDL2Palette/palette.table
|
||||
|
||||
2005-05-12 Matt Rice <ratmice@yahoo.com>
|
||||
|
||||
* ChangeLog: Fix previous ChangeLog entry.
|
||||
|
|
46
EOModeler/EODefines.h
Normal file
46
EOModeler/EODefines.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
/* -*-objc-*-
|
||||
EODefines.h
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
Author: Matt Rice <ratmice@yahoo.com>
|
||||
Date: Apr 2005
|
||||
|
||||
This file is part of the GNUstep Database Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef __EOModeler_EODefines_h__
|
||||
#define __EOModeler_EODefines_h__
|
||||
|
||||
#ifdef GNUSTEP_WITH_DLL
|
||||
|
||||
#if BUILD_libEOModeler_DLL
|
||||
# define GDL2MODELER_EXPORT __declspec(dllexport)
|
||||
# define GDL2MODELER_DECLARE __declspec(dllexport)
|
||||
#else
|
||||
# define GDL2MODELER_EXPORT extern __declspec(dllimport)
|
||||
# define GDL2MODELER_DECLARE __declspec(dllimport)
|
||||
#endif
|
||||
|
||||
#else /* GNUSTEP_WITH[OUT]_DLL */
|
||||
|
||||
# define GDL2MODELER_EXPORT extern
|
||||
# define GDL2MODELER_DECLARE
|
||||
|
||||
#endif
|
||||
|
||||
#endif /* __EOMODELER_EODefines_h__ */
|
53
EOModeler/EOMInspector.h
Normal file
53
EOModeler/EOMInspector.h
Normal file
|
@ -0,0 +1,53 @@
|
|||
#ifndef __EOMInspector_H__
|
||||
#define __EOMInspector_H__
|
||||
|
||||
/* -*-objc-*-
|
||||
EOMInspector.h
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
Author: Matt Rice <ratmice@yahoo.com>
|
||||
Date: Apr 2005
|
||||
|
||||
This file is part of the GNUstep Database Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <Foundation/NSObject.h>
|
||||
|
||||
@class NSArray;
|
||||
@class NSWindow;
|
||||
@class NSView;
|
||||
@class NSImage;
|
||||
|
||||
@interface EOMInspector : NSObject
|
||||
{
|
||||
NSImage *image;
|
||||
NSView *view;
|
||||
NSWindow *window;
|
||||
}
|
||||
+ (NSArray *)allRegisteredInspectors;
|
||||
+ (NSArray *)allInspectorsThatCanInspectObject:(id)anObject;
|
||||
+ (EOMInspector *) sharedInspector;
|
||||
|
||||
- (NSView *)view;
|
||||
- (BOOL) canInspectObject:(id)anObject;
|
||||
- (void) prepareForDisplay;
|
||||
- (void) refresh;
|
||||
- (id) selectedObject;
|
||||
@end
|
||||
|
||||
#endif // __EOMInspector_H__
|
211
EOModeler/EOMInspector.m
Normal file
211
EOModeler/EOMInspector.m
Normal file
|
@ -0,0 +1,211 @@
|
|||
/**
|
||||
EOMInspector.m <title>EOMInspector Class</title>
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
Author: Matt Rice <ratmice@yahoo.com>
|
||||
Date: April 2005
|
||||
|
||||
This file is part of the GNUstep Database Library.
|
||||
|
||||
<license>
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
</license>
|
||||
**/
|
||||
|
||||
#include <AppKit/AppKit.h>
|
||||
#include "EOModeler/EOMInspector.h"
|
||||
#include "EOModeler/EOMInspectorController.h"
|
||||
#include "EOModeler/EOModelerApp.h"
|
||||
#include "EOModeler/EOModelerEditor.h"
|
||||
#include <Foundation/NSArray.h>
|
||||
static NSMapTable *_inspectorsByClass;
|
||||
|
||||
|
||||
@implementation EOMInspector
|
||||
|
||||
- (id) init
|
||||
{
|
||||
self = [super init];
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
/* this method currently assumes that allRegisteredInspectors has been called *after* all bundles have been loaded. */
|
||||
|
||||
+ (NSArray *) allRegisteredInspectors
|
||||
{
|
||||
if (!_inspectorsByClass)
|
||||
{
|
||||
NSArray *inspectorClasses = GSObjCAllSubclassesOfClass([self class]);
|
||||
int i,c;
|
||||
_inspectorsByClass = NSCreateMapTableWithZone(NSObjectMapKeyCallBacks,
|
||||
NSObjectMapValueCallBacks,
|
||||
[inspectorClasses count],
|
||||
[self zone]);
|
||||
|
||||
for (i = 0, c = [inspectorClasses count]; i < c; i++)
|
||||
{
|
||||
[[inspectorClasses objectAtIndex:i] sharedInspector];
|
||||
}
|
||||
}
|
||||
|
||||
return [NSAllMapTableValues(_inspectorsByClass) sortedArrayUsingSelector:@selector(_compareDisplayOrder:)];
|
||||
}
|
||||
|
||||
+ (NSArray *) allInspectorsThatCanInspectObject:(id)selectedObject
|
||||
{
|
||||
int i,c;
|
||||
NSMutableArray *inspectors = [[NSMutableArray alloc] init];
|
||||
NSArray *_allInspectors = [self allRegisteredInspectors];
|
||||
|
||||
for (i = 0, c = [_allInspectors count]; i < c; i++)
|
||||
{
|
||||
id gadget = [_allInspectors objectAtIndex:i];
|
||||
|
||||
if ([gadget canInspectObject:selectedObject])
|
||||
{
|
||||
[inspectors addObject:gadget];
|
||||
}
|
||||
}
|
||||
return inspectors;
|
||||
}
|
||||
|
||||
+ (EOMInspector *)sharedInspector
|
||||
{
|
||||
EOMInspector *_sharedInspector = NSMapGet(_inspectorsByClass, [self class]);
|
||||
|
||||
if (!_sharedInspector)
|
||||
{
|
||||
id foo = [[self alloc] init];
|
||||
NSMapInsert(_inspectorsByClass,[self class], foo);
|
||||
_sharedInspector = foo;
|
||||
}
|
||||
|
||||
return _sharedInspector;
|
||||
}
|
||||
|
||||
+ (BOOL) usesControlActionForValidation
|
||||
{
|
||||
return YES;
|
||||
}
|
||||
|
||||
+ (NSArray *) selectionBeingValidated
|
||||
{
|
||||
return nil; // FIXME
|
||||
}
|
||||
|
||||
- (NSString *) displayName
|
||||
{
|
||||
return [window title];
|
||||
}
|
||||
|
||||
- (NSImage *) image
|
||||
{
|
||||
if (!image)
|
||||
image = [NSImage imageNamed:NSStringFromClass([self class])];
|
||||
return image;
|
||||
}
|
||||
|
||||
- (NSImage *) hilightedImage
|
||||
{
|
||||
return [self image];
|
||||
}
|
||||
|
||||
- (float) displayOrder
|
||||
{
|
||||
return 10.0;
|
||||
}
|
||||
|
||||
- (NSComparisonResult) _compareDisplayOrder:(EOMInspector *)inspector
|
||||
{
|
||||
float itsResult, myResult;
|
||||
|
||||
myResult = [self displayOrder];
|
||||
itsResult = [inspector displayOrder];
|
||||
|
||||
return (myResult < itsResult)
|
||||
? NSOrderedAscending
|
||||
: (myResult == itsResult)
|
||||
? NSOrderedSame
|
||||
: NSOrderedDescending;
|
||||
|
||||
}
|
||||
|
||||
- (BOOL) canInspectObject:(id)selectedObject
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
- (void) load
|
||||
{
|
||||
NSLog(@"loading inspector %@",NSStringFromClass([self class]));
|
||||
if (![NSBundle loadNibNamed:NSStringFromClass([self class])
|
||||
owner: self])
|
||||
NSLog(@"failed to load: %@.gorm", NSStringFromClass([self class]));
|
||||
}
|
||||
|
||||
- (void) unload
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void) prepareForDisplay
|
||||
{
|
||||
if (!view)
|
||||
{
|
||||
[self load];
|
||||
}
|
||||
}
|
||||
|
||||
/* returns the 'view' ivar if it exists otherwise the 'window' ivars content view */
|
||||
- (NSView *) view
|
||||
{
|
||||
/* yes we leak this but these live throughout the applictions lifespan,
|
||||
* we'll only leak one because inspectors are singletons.
|
||||
* and theres no good way to release it in all cases. */
|
||||
if (!view && window)
|
||||
view = RETAIN([window contentView]);
|
||||
|
||||
return view;
|
||||
}
|
||||
|
||||
- (void) refresh
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
- (NSArray *) selectedObjects
|
||||
{
|
||||
return [[EOMApp currentEditor] selectionWithinViewedObject];
|
||||
}
|
||||
|
||||
- (id) selectedObject
|
||||
{
|
||||
NSArray *selection = [[EOMApp currentEditor] selectionWithinViewedObject];
|
||||
|
||||
if ([selection count])
|
||||
return [selection objectAtIndex:0];
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (BOOL) isAdvanced
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
|
||||
@end
|
46
EOModeler/EOMInspectorController.h
Normal file
46
EOModeler/EOMInspectorController.h
Normal file
|
@ -0,0 +1,46 @@
|
|||
#ifndef __EOMInspectorController_H__
|
||||
#define __EOMInspectorController_H__
|
||||
|
||||
/* -*-objc-*-
|
||||
EOMInspectorController.h
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
Author: Matt Rice <ratmice@yahoo.com>
|
||||
Date: Apr 2005
|
||||
|
||||
This file is part of the GNUstep Database Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <Foundation/NSObject.h>
|
||||
|
||||
@class NSWindow;
|
||||
@class NSScrollView;
|
||||
@class EOMInspector;
|
||||
|
||||
@interface EOMInspectorController : NSObject
|
||||
{
|
||||
NSWindow *window;
|
||||
NSScrollView *scrollView;
|
||||
EOMInspector *lastInspector;
|
||||
}
|
||||
|
||||
+ (EOMInspectorController *)sharedInstance;
|
||||
+ (void) showInspector;
|
||||
@end
|
||||
|
||||
#endif // __EOMInspectorController_H__
|
131
EOModeler/EOMInspectorController.m
Normal file
131
EOModeler/EOMInspectorController.m
Normal file
|
@ -0,0 +1,131 @@
|
|||
/**
|
||||
EOMInspectorController.m <title>EOMInspectorController Class</title>
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
Author: Matt Rice <ratmice@yahoo.com>
|
||||
Date: April 2005
|
||||
|
||||
This file is part of the GNUstep Database Library.
|
||||
|
||||
<license>
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
</license>
|
||||
**/
|
||||
|
||||
#include <EOModeler/EOModelerApp.h>
|
||||
#include <EOModeler/EOMInspector.h>
|
||||
#include <EOModeler/EOMInspectorController.h>
|
||||
#include <EOModeler/EOModelerEditor.h>
|
||||
|
||||
#include <AppKit/NSWindow.h>
|
||||
#include <AppKit/NSScrollView.h>
|
||||
#include <AppKit/NSBox.h>
|
||||
#include <AppKit/NSButtonCell.h>
|
||||
|
||||
#include <Foundation/NSNotification.h>
|
||||
#include <Foundation/NSException.h>
|
||||
#include <Foundation/NSArray.h>
|
||||
|
||||
static EOMInspectorController *_sharedInspectorController;
|
||||
|
||||
static NSBox *_placeHolderView;
|
||||
@interface EOMInspectorController(Private)
|
||||
- (void) _selectionChanged:(NSNotification *)notif;
|
||||
@end
|
||||
@implementation EOMInspectorController
|
||||
|
||||
- (id) init
|
||||
{
|
||||
if (_sharedInspectorController)
|
||||
[[NSException exceptionWithName: NSInternalInconsistencyException
|
||||
reason: @"EOMInspectorController is a singleton"
|
||||
userInfo:nil] raise];
|
||||
self = [super init];
|
||||
window = [[NSWindow alloc] initWithContentRect:NSMakeRect(220, 536, 272, 388)
|
||||
styleMask:NSTitledWindowMask | NSClosableWindowMask
|
||||
backing:NSBackingStoreBuffered
|
||||
defer:YES];
|
||||
scrollView = [[NSScrollView alloc] initWithFrame: NSMakeRect(0, 0, 250, 68)];
|
||||
_placeHolderView = [[NSBox alloc] initWithFrame:NSMakeRect(0,68,250,333)];
|
||||
|
||||
[_placeHolderView setBorderType:NSNoBorder];
|
||||
_sharedInspectorController = self;
|
||||
|
||||
[[NSNotificationCenter defaultCenter]
|
||||
addObserver:_sharedInspectorController
|
||||
selector:@selector(_selectionChanged:)
|
||||
name:EOMSelectionChangedNotification
|
||||
object:nil];
|
||||
|
||||
[[window contentView] addSubview: scrollView];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void) _showInspector
|
||||
{
|
||||
[window makeKeyAndOrderFront:self];
|
||||
[self _selectionChanged:nil];
|
||||
}
|
||||
|
||||
+ (void) showInspector
|
||||
{
|
||||
[[self sharedInstance] _showInspector];
|
||||
}
|
||||
|
||||
+ (EOMInspectorController *)sharedInstance
|
||||
{
|
||||
if (!_sharedInspectorController)
|
||||
return [[self alloc] init];
|
||||
|
||||
return _sharedInspectorController;
|
||||
}
|
||||
|
||||
- (void) _selectionChanged:(NSNotification *)notif
|
||||
{
|
||||
/* load the highest ordered inspector for the new selection
|
||||
* if the current inspector can support the object, select it instead. */
|
||||
NSArray *selection = [[EOMApp currentEditor] selectionWithinViewedObject];
|
||||
id inspector;
|
||||
|
||||
if ([selection count])
|
||||
{
|
||||
NSArray *inspectors = [EOMInspector allInspectorsThatCanInspectObject: [selection objectAtIndex:0]];
|
||||
|
||||
if ([inspectors count])
|
||||
{
|
||||
inspector = [inspectors objectAtIndex:0];
|
||||
[inspector prepareForDisplay];
|
||||
[[window contentView] replaceSubview:[lastInspector view] with:[inspector view]];
|
||||
[inspector refresh];
|
||||
lastInspector = inspector;
|
||||
}
|
||||
else
|
||||
{
|
||||
NSLog(@"no inspector");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
NSLog(@"no selection");
|
||||
}
|
||||
}
|
||||
|
||||
- (void) selectInspector:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@end
|
|
@ -9,19 +9,18 @@
|
|||
This file is part of the GNUstep Database Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, write to the Free Software Foundation,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#ifndef __EOModelExtensions_h__
|
||||
|
|
|
@ -9,19 +9,19 @@
|
|||
This file is part of the GNUstep Database Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Library General Public
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2 of the License, or (at your option) any later version.
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Library General Public License for more details.
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Library General Public
|
||||
License along with this library; see the file COPYING.LIB.
|
||||
If not, write to the Free Software Foundation,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
|
70
EOModeler/EOModelerApp.h
Normal file
70
EOModeler/EOModelerApp.h
Normal file
|
@ -0,0 +1,70 @@
|
|||
#ifndef __EOModelerApp_H__
|
||||
#define __EOModelerApp_H__
|
||||
|
||||
/* -*-objc-*-
|
||||
EOModelerApp.h
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
Author: Matt Rice <ratmice@yahoo.com>
|
||||
Date: Apr 2005
|
||||
|
||||
This file is part of the GNUstep Database Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <AppKit/NSApplication.h>
|
||||
#include <EOModeler/EODefines.h>
|
||||
|
||||
@class EOModelerApp;
|
||||
@class EOModelerEditor;
|
||||
@class EOModelerDocument;
|
||||
@class NSMutableArray;
|
||||
@class NSMutableDictionary;
|
||||
@class EODisplayGroup;
|
||||
@class NSTableColumn;
|
||||
GDL2MODELER_EXPORT NSString *EOMSelectionChangedNotification;
|
||||
GDL2MODELER_EXPORT EOModelerApp *EOMApp;
|
||||
GDL2MODELER_EXPORT NSString *EOMPropertyPboardType;
|
||||
@protocol EOMColumnProvider
|
||||
- (void) initColumn:(NSTableColumn *)tableColumn
|
||||
class:(Class)objectClass
|
||||
name:(NSString *)columnName
|
||||
displayGroup:(EODisplayGroup *)dg
|
||||
document:(EOModelerDocument *)document;
|
||||
@end
|
||||
|
||||
@interface EOModelerApp : NSApplication
|
||||
{
|
||||
NSMutableArray *_documents;
|
||||
NSMutableDictionary *_columnsByClass;
|
||||
EOModelerEditor *_currentEditor;
|
||||
}
|
||||
- (EOModelerDocument *)activeDocument;
|
||||
- (EOModelerEditor *)currentEditor;
|
||||
- (void)setCurrentEditor:(EOModelerEditor *)editor;
|
||||
- (NSArray *)documents;
|
||||
- (void) addDocument:(EOModelerDocument *)document;
|
||||
- (NSArray *)columnNamesForClass:(Class)aClass;
|
||||
- (id <EOMColumnProvider>) providerForName:(NSString *)name class:(Class)objectClass;
|
||||
- (void) registerColumnName:(NSString *)columnNames forClass:(Class)objectClass
|
||||
provider:(id <EOMColumnProvider>)provider;
|
||||
- (void) registerColumnNames:(NSArray *)columnNames forClass:(Class)objectClass
|
||||
provider:(id <EOMColumnProvider>)provider;
|
||||
|
||||
@end
|
||||
|
||||
#endif // __EOModelerApp_H__
|
182
EOModeler/EOModelerApp.m
Normal file
182
EOModeler/EOModelerApp.m
Normal file
|
@ -0,0 +1,182 @@
|
|||
/**
|
||||
EOModelerApp.m <title>EOModelerApp Class</title>
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
Author: Matt Rice <ratmice@yahoo.com>
|
||||
Date: April 2005
|
||||
|
||||
This file is part of the GNUstep Database Library.
|
||||
|
||||
<license>
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
</license>
|
||||
**/
|
||||
|
||||
#include "EOModeler/EODefines.h"
|
||||
#include "EOModeler/EOModelerApp.h"
|
||||
#include "EOModeler/EOModelerDocument.h"
|
||||
|
||||
#include <EOAccess/EOModel.h>
|
||||
#include <EOAccess/EOModelGroup.h>
|
||||
|
||||
EOModelerApp *EOMApp;
|
||||
NSString *EOMSelectionChangedNotification = @"EOModelerSelectionChanged";
|
||||
NSString *EOMPropertyPboardType = @"EOModelProperty";
|
||||
|
||||
static EOModelerDocument *_activeDocument;
|
||||
|
||||
@interface EOModel (Private)
|
||||
- (void) setCreateMutableObjects:(BOOL)flag;
|
||||
@end
|
||||
|
||||
@implementation EOModelerApp : NSApplication
|
||||
|
||||
- (id) init
|
||||
{
|
||||
if (self = [super init])
|
||||
{
|
||||
EOMApp = (EOModelerApp*)NSApp;
|
||||
_documents = [[NSMutableArray alloc] init];
|
||||
_columnsByClass = [[NSMutableDictionary alloc] init];
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSArray *)allPasteboardTypes
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (EOModelerEditor *)currentEditor;
|
||||
{
|
||||
return _currentEditor;
|
||||
}
|
||||
|
||||
- (void) setCurrentEditor:(EOModelerEditor *)newEditor
|
||||
{
|
||||
_currentEditor = newEditor;
|
||||
}
|
||||
|
||||
- (void)addDocument:(EOModelerDocument *)document
|
||||
{
|
||||
[_documents addObject: document];
|
||||
}
|
||||
|
||||
- (void)removeDocument:(EOModelerDocument *)document
|
||||
{
|
||||
[_documents removeObject: document];
|
||||
}
|
||||
|
||||
- (NSArray *)documents
|
||||
{
|
||||
return [NSArray arrayWithArray: _documents];
|
||||
}
|
||||
|
||||
- (EOModelerDocument *)activeDocument
|
||||
{
|
||||
//TODO
|
||||
return _activeDocument;
|
||||
}
|
||||
|
||||
- (EOModelerDocument *)loadDocumentAtPath:(NSString *)path
|
||||
{
|
||||
EOModel *loadedModel = [[EOModel alloc] initWithContentsOfFile:path];
|
||||
[loadedModel setCreateMutableObjects:YES];
|
||||
[[EOModelGroup defaultGroup] addModel:loadedModel];
|
||||
EOModelerDocument *loadedDocument = [[EOModelerDocument alloc] initWithModel: loadedModel];
|
||||
[self addDocument: loadedDocument];
|
||||
RELEASE(loadedDocument);
|
||||
return loadedDocument;
|
||||
}
|
||||
|
||||
- (EOModelerDocument *)documentWithPath:(NSString *)path
|
||||
{
|
||||
int i = 0;
|
||||
for (i=0; i < [_documents count]; i++)
|
||||
{
|
||||
if ([[[_documents objectAtIndex:i] documentPath] isEqual: path])
|
||||
return [_documents objectAtIndex:i];
|
||||
}
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void)registerColumnName:(NSString *)name
|
||||
forClass:(Class)class
|
||||
provider:(id <EOMColumnProvider>)provider
|
||||
{
|
||||
NSMutableDictionary *classDict = [_columnsByClass objectForKey: class];
|
||||
if (!classDict)
|
||||
{
|
||||
classDict = [[NSMutableDictionary alloc] init];
|
||||
[_columnsByClass setObject:classDict forKey:class];
|
||||
RELEASE(classDict);
|
||||
}
|
||||
[classDict setObject:provider forKey:name];
|
||||
}
|
||||
|
||||
- (void)registerColumnNames:(NSArray *)names
|
||||
forClass:(Class)class
|
||||
provider:(id <EOMColumnProvider>)provider
|
||||
{
|
||||
int i,count = [names count];
|
||||
NSMutableDictionary *classDict = [_columnsByClass objectForKey: class];
|
||||
|
||||
if (!classDict)
|
||||
{
|
||||
classDict = [[NSMutableDictionary alloc] init];
|
||||
[_columnsByClass setObject:classDict forKey:class];
|
||||
RELEASE(classDict);
|
||||
}
|
||||
|
||||
for (i=0; i < count; i++)
|
||||
{
|
||||
[classDict setObject:provider forKey:[names objectAtIndex:i]];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSArray *)columnNamesForClass:(Class)class
|
||||
{
|
||||
return [[_columnsByClass objectForKey:class] allKeys];
|
||||
}
|
||||
|
||||
- (id <EOMColumnProvider>)providerForName:(NSString *)name class:(Class)class
|
||||
{
|
||||
return [[_columnsByClass objectForKey:class] objectForKey:name];
|
||||
}
|
||||
|
||||
+ (EOModel *)modelWithPath:(NSString *)path
|
||||
{
|
||||
id _eom = [[EOModel alloc] initWithContentsOfFile:path];
|
||||
[_eom setCreateMutableObjects:YES];
|
||||
[[EOModelGroup defaultGroup] addModel: _eom];
|
||||
return _eom;
|
||||
}
|
||||
|
||||
+ (EOModel *)modelContainingFetchSpecification:(EOFetchSpecification *)fs
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
+ (NSString *)nameForFetchSpecification:(EOFetchSpecification *)fs
|
||||
{
|
||||
|
||||
}
|
||||
-(void)_setActiveDocument:(EOModelerDocument*)ad
|
||||
{
|
||||
_activeDocument = ad;
|
||||
}
|
||||
@end
|
54
EOModeler/EOModelerDocument.h
Normal file
54
EOModeler/EOModelerDocument.h
Normal file
|
@ -0,0 +1,54 @@
|
|||
#ifndef __EOModelerDocument_H__
|
||||
#define __EOModelerDocument_H__
|
||||
|
||||
/* -*-objc-*-
|
||||
EOModelerDocument.h
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
Author: Matt Rice <ratmice@yahoo.com>
|
||||
Date: Apr 2005
|
||||
|
||||
This file is part of the GNUstep Database Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <Foundation/NSObject.h>
|
||||
|
||||
@class EOModel;
|
||||
@class NSMutableArray;
|
||||
@class NSDictionary;
|
||||
@class EOEditingContext;
|
||||
@class EOModelerEditor;
|
||||
|
||||
@interface EOModelerDocument : NSObject
|
||||
{
|
||||
EOModel *_model;
|
||||
NSMutableArray *_editors;
|
||||
NSDictionary *_userInfo;
|
||||
EOEditingContext *_editingContext;
|
||||
}
|
||||
|
||||
+ (void) setDefaultEditorClass: (Class)defaultEditorClass;
|
||||
- (id) initWithModel:(EOModel *)model;
|
||||
- (void) saveAs:(id)sender;
|
||||
- (NSString *)documentPath;
|
||||
- (EOModel *)model;
|
||||
- (EOModelerEditor *) addDefaultEditor;
|
||||
- (void) activate;
|
||||
@end
|
||||
|
||||
#endif // __EOModelerDocument_H__
|
399
EOModeler/EOModelerDocument.m
Normal file
399
EOModeler/EOModelerDocument.m
Normal file
|
@ -0,0 +1,399 @@
|
|||
/**
|
||||
EOModelerDocument.m <title>EOModelerDocument Class</title>
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
Author: Matt Rice <ratmice@yahoo.com>
|
||||
Date: April 2005
|
||||
|
||||
This file is part of the GNUstep Database Library.
|
||||
|
||||
<license>
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
</license>
|
||||
**/
|
||||
|
||||
#include <AppKit/NSOpenPanel.h>
|
||||
|
||||
#include <EOInterface/EODisplayGroup.h>
|
||||
|
||||
#include <EOAccess/EOAdaptor.h>
|
||||
#include <EOAccess/EOAttribute.h>
|
||||
#include <EOAccess/EOEntity.h>
|
||||
#include <EOAccess/EOModel.h>
|
||||
#include <EOAccess/EORelationship.h>
|
||||
|
||||
#include <EOControl/EOEditingContext.h>
|
||||
|
||||
#include <Foundation/NSAttributedString.h>
|
||||
#include <Foundation/NSRunLoop.h>
|
||||
#include <Foundation/NSException.h>
|
||||
|
||||
#include "EOModeler/EODefines.h"
|
||||
#include "EOModeler/EOModelerDocument.h"
|
||||
#include "EOModeler/EOModelerEditor.h"
|
||||
#include "EOModeler/EOModelerApp.h"
|
||||
|
||||
static Class _defaultEditorClass;
|
||||
static EOModelerEditor *_currentEditorForDocument;
|
||||
|
||||
@interface EOModelerApp (PrivateStuff)
|
||||
- (void) _setActiveDocument:(EOModelerDocument *)newDocument;
|
||||
@end
|
||||
|
||||
@interface NSArray (EOMAdditions)
|
||||
- (id) firstSelectionOfClass:(Class)aClass;
|
||||
@end
|
||||
@implementation NSArray (EOMAdditions)
|
||||
- (id) firstSelectionOfClass:(Class)aClass
|
||||
{
|
||||
int i, c;
|
||||
id obj;
|
||||
for (i = 0, c = [self count]; i < c; i++)
|
||||
{
|
||||
obj = [self objectAtIndex:i];
|
||||
if ([obj isKindOfClass:aClass])
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if ([obj isKindOfClass:[NSArray class]])
|
||||
{
|
||||
int j, d;
|
||||
for (j = 0, d = [obj count]; j < d; j++)
|
||||
{
|
||||
id obj2 = [obj objectAtIndex:j];
|
||||
|
||||
if ([obj2 isKindOfClass:aClass])
|
||||
{
|
||||
obj = obj2;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (![obj isKindOfClass:aClass])
|
||||
{
|
||||
NSLog(@"blah:");
|
||||
for (i = 0; c < [self count]; i++)
|
||||
NSLog(@"## %@", [self objectAtIndex:i]);
|
||||
/* [[NSException exceptionWithName:NSInternalInconsistencyException
|
||||
reason:[NSString stringWithFormat:@"Couldn't find a selected %@", aClass]
|
||||
userInfo:[NSDictionary dictionaryWithObject:self forKey:@"array"]] raise];*/
|
||||
return nil;
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
@end
|
||||
|
||||
@implementation EOModelerDocument
|
||||
|
||||
- (id)initWithModel:(EOModel*)model
|
||||
{
|
||||
if (self = [super init])
|
||||
{
|
||||
_model = RETAIN(model);
|
||||
_userInfo = nil;
|
||||
_editors = [[NSMutableArray alloc] init];
|
||||
_editingContext = [[EOEditingContext alloc] init];
|
||||
[_editingContext insertObject:model];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (EOAdaptor *)adaptor
|
||||
{
|
||||
NS_DURING
|
||||
return [EOAdaptor adaptorWithModel:_model];
|
||||
NS_HANDLER
|
||||
return nil;
|
||||
NS_ENDHANDLER
|
||||
}
|
||||
|
||||
- (EOModel *)model;
|
||||
{
|
||||
return _model;
|
||||
}
|
||||
|
||||
- (EOEditingContext *)editingContext
|
||||
{
|
||||
return _editingContext;
|
||||
}
|
||||
|
||||
- (BOOL) isDirty
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (BOOL) prepareToSave
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (NSString *)documentPath
|
||||
{
|
||||
return [[[EOMApp activeDocument] model] path];
|
||||
}
|
||||
|
||||
- (BOOL)saveToPath:(NSString *)path
|
||||
{
|
||||
if (![[path pathExtension] isEqual:@"eomodeld"])
|
||||
path = [path stringByAppendingPathExtension:@"eomodeld"];
|
||||
NS_DURING
|
||||
[_model writeToFile: path];
|
||||
return YES;
|
||||
NS_HANDLER
|
||||
NSRunAlertPanel(@"Error",@"Save failed: %@",@"Ok",NULL,NULL,[localException reason]);
|
||||
return NO;
|
||||
NS_ENDHANDLER
|
||||
}
|
||||
|
||||
- (BOOL)checkCloseDocument
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void)activate
|
||||
{
|
||||
[EOMApp _setActiveDocument: self];
|
||||
[[_editors objectAtIndex:0] activate];
|
||||
|
||||
//[[EOMApp currentEditor] activate];
|
||||
// int i,count=[_editors count];
|
||||
/* should we really activate the _defaultEditorClass or have some _currentEditor private variable? */
|
||||
/* for (i = 0; i < count; i++)
|
||||
{
|
||||
EOModelerEditor *anEditor = [_editors objectAtIndex:i];
|
||||
if ([anEditor isKindOfClass: _defaultEditorClass])
|
||||
{
|
||||
[anEditor activate];
|
||||
}
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
/* Editors stuff */
|
||||
|
||||
- (NSArray *)editors
|
||||
{
|
||||
return [NSArray arrayWithArray:_editors];
|
||||
}
|
||||
|
||||
- (void)addEditor:(EOModelerEditor *)editor
|
||||
{
|
||||
/* check if we already have an editor object? */
|
||||
[_editors addObject:editor];
|
||||
}
|
||||
|
||||
- (void) closeEditor:(EOModelerEditor *)editor
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (BOOL)checkCloseEditor:(EOModelerEditor *)editor
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (EOModelerEditor *) addDefaultEditor
|
||||
{
|
||||
EOModelerEditor *defaultEditor = [[_defaultEditorClass alloc] initWithDocument:self];
|
||||
[self addEditor: defaultEditor];
|
||||
_currentEditorForDocument = defaultEditor;
|
||||
RELEASE(defaultEditor);
|
||||
return defaultEditor;
|
||||
}
|
||||
|
||||
- (void)addEntity:(id)sender
|
||||
{
|
||||
EOAttribute *attrb;
|
||||
int entityCount = [[_model entities] count];
|
||||
EOEntity *newEntity = [[EOEntity alloc] init];
|
||||
|
||||
if (![_editors containsObject:[EOMApp currentEditor]])
|
||||
{
|
||||
[[NSException exceptionWithName:NSInternalInconsistencyException reason:@"currentEditor not in edited document exception" userInfo:nil] raise];
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
[newEntity setName: entityCount ? [NSString stringWithFormat: @"Entity%i",entityCount + 1] : @"Entity"];
|
||||
[newEntity setClassName:@"EOGenericRecord"];
|
||||
attrb = [EOAttribute new];
|
||||
[attrb setName:@"Attribute"];
|
||||
[newEntity addAttribute:attrb];
|
||||
[_editingContext insertObject:newEntity];
|
||||
[_model addEntity:AUTORELEASE(newEntity)];
|
||||
[(EOModelerCompoundEditor *)[EOMApp currentEditor] viewSelectedObject];
|
||||
}
|
||||
|
||||
- (void)addAttribute:(id)sender
|
||||
{
|
||||
EOAttribute *attrb;
|
||||
EOModelerEditor *currEd = [EOMApp currentEditor];
|
||||
int attributeCount;
|
||||
EOEntity *entityObject;
|
||||
|
||||
/* the currentEditor must be in this document */
|
||||
if (![_editors containsObject:currEd])
|
||||
{
|
||||
[[NSException exceptionWithName:NSInternalInconsistencyException reason:@"currentEditor not in edited document exception" userInfo:nil] raise];
|
||||
return;
|
||||
}
|
||||
|
||||
entityObject = [[currEd selectionPath] firstSelectionOfClass:[EOEntity class]];
|
||||
attributeCount = [[entityObject attributes] count];
|
||||
|
||||
attrb = [[EOAttribute alloc] init];
|
||||
[attrb setName: attributeCount ? [NSString stringWithFormat: @"Attribute%i", attributeCount + 1] : @"Attribute"];
|
||||
[entityObject addAttribute:attrb];
|
||||
[_editingContext insertObject:attrb];
|
||||
//[[(EOModelerCompoundEditor *)[EOMApp currentEditor] activeEditor] setSelectionWithinViewedObject:[NSArray arrayWithObject: entityObject]];
|
||||
[[NSRunLoop currentRunLoop] runUntilDate: [NSDate dateWithTimeIntervalSinceNow:0.001]];
|
||||
[(EOModelerCompoundEditor *)[EOMApp currentEditor] viewSelectedObject];
|
||||
}
|
||||
|
||||
- (void)addRelationship:(id)sender
|
||||
{
|
||||
EORelationship *newRel;
|
||||
EOEntity *srcEntity;
|
||||
EOModelerEditor *currentEditor = [EOMApp currentEditor];
|
||||
int count;
|
||||
|
||||
if (![_editors containsObject:currentEditor])
|
||||
{
|
||||
[[NSException exceptionWithName:NSInternalInconsistencyException reason:@"currentEditor not in edited document exception" userInfo:nil] raise];
|
||||
return;
|
||||
}
|
||||
|
||||
srcEntity = [[currentEditor selectionPath] firstSelectionOfClass:[EOEntity class]];
|
||||
count = [[srcEntity relationships] count];
|
||||
newRel = [[EORelationship alloc] init];
|
||||
[newRel setName: count ? [NSString stringWithFormat:@"Relationship%i", count + 1] : @"Relationship"];
|
||||
[srcEntity addRelationship:newRel];
|
||||
[_editingContext insertObject:newRel];
|
||||
//[[(EOModelerCompoundEditor *)[EOMApp currentEditor] activeEditor] setSelectionWithinViewedObject:[NSArray arrayWithObject: srcEntity]];
|
||||
[(EOModelerCompoundEditor *)[EOMApp currentEditor] viewSelectedObject];
|
||||
}
|
||||
|
||||
- (void)addFetchSpecification:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void)addStoredProcedure:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void)addArgument:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (BOOL)canFlattenSelectedAttribute;
|
||||
{
|
||||
// no idea
|
||||
}
|
||||
|
||||
- (void)flattenAttribute:(id)sender
|
||||
{
|
||||
// likewise
|
||||
}
|
||||
|
||||
- (void)save:(id)sender
|
||||
{
|
||||
NSString *path;
|
||||
path = [_model path];
|
||||
if (!path)
|
||||
[self saveAs:self];
|
||||
else
|
||||
[self saveToPath:path];
|
||||
}
|
||||
|
||||
- (void)saveAs:(id)sender
|
||||
{
|
||||
NSString *path = [_model path];
|
||||
if (!path)
|
||||
{
|
||||
id savePanel = [NSSavePanel savePanel];
|
||||
int result = [savePanel runModal];
|
||||
|
||||
if (result == NSOKButton)
|
||||
{
|
||||
path = [savePanel filename];
|
||||
}
|
||||
}
|
||||
[self saveToPath: path];
|
||||
}
|
||||
|
||||
- (void)revertToSaved:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
-(void)close:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void)undo:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
- (void)redo:(id)sender
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
/* consitency checking stuff */
|
||||
- (void) appendConcistencyCheckErrorText: (NSAttributedString *)errorText
|
||||
{
|
||||
|
||||
}
|
||||
- (void) appendConcistencyCheckSuccessText: (NSAttributedString *)successText
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
+ (void)setDefaultEditorClass:(Class)editorClass
|
||||
{
|
||||
_defaultEditorClass = editorClass;
|
||||
}
|
||||
|
||||
+ (Class)defaultEditorClass
|
||||
{
|
||||
return _defaultEditorClass;
|
||||
}
|
||||
|
||||
- (void)setUserInfo:(NSDictionary*)dictionary
|
||||
{
|
||||
ASSIGN(_userInfo,dictionary); //just a guess
|
||||
}
|
||||
|
||||
- (NSDictionary *)userInfo
|
||||
{
|
||||
return _userInfo;
|
||||
}
|
||||
|
||||
- (void) windowDidBecomeKey:(NSNotification *)notif
|
||||
{
|
||||
[self activate];
|
||||
}
|
||||
|
||||
@end
|
||||
|
77
EOModeler/EOModelerEditor.h
Normal file
77
EOModeler/EOModelerEditor.h
Normal file
|
@ -0,0 +1,77 @@
|
|||
#ifndef __EOModelerEditor_H__
|
||||
#define __EOModelerEditor_H__
|
||||
|
||||
/* -*-objc-*-
|
||||
EOModelerEditor.h
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
Author: Matt Rice <ratmice@yahoo.com>
|
||||
Date: Apr 2005
|
||||
|
||||
This file is part of the GNUstep Database Library.
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
*/
|
||||
|
||||
#include <Foundation/NSObject.h>
|
||||
|
||||
@class EOModelerDocument;
|
||||
@class EOModelerEmbedibleEditor;
|
||||
@class NSView;
|
||||
@class NSMutableArray;
|
||||
|
||||
@interface EOModelerEditor : NSObject
|
||||
{
|
||||
EOModelerDocument *_document;
|
||||
NSMutableArray *_editors;
|
||||
EOModelerEmbedibleEditor *_activeEditor;
|
||||
NSArray *_viewedObjectPath;
|
||||
NSArray *_selectionWithinViewedObject;
|
||||
BOOL _storedProceduresSelected;
|
||||
}
|
||||
- (id) initWithDocument:(EOModelerDocument *)document;
|
||||
- (EOModelerDocument *)document;
|
||||
- (void) setSelectionWithinViewedObject:(NSArray *)selectionWithin;
|
||||
- (id) selectionWithinViewedObject;
|
||||
- (void) setSelectionPath:(NSArray *)selectionPath;
|
||||
- (NSArray *)selectionPath;
|
||||
- (void) setViewedObjectPath:(NSArray *)viewedObjectPath;
|
||||
- (NSArray *)viewedObjectPath;
|
||||
@end
|
||||
|
||||
@interface EOModelerCompoundEditor : EOModelerEditor
|
||||
- (void) viewSelectedObject;
|
||||
- (void) registerEmbedibleEditor:(EOModelerEmbedibleEditor *)embedibleEditor;
|
||||
- (void) activateEmbeddedEditor:(EOModelerEmbedibleEditor *)embedibleEditor;
|
||||
- (void) activateEditorWithClass:(Class)editorClass;
|
||||
- (void) activate;
|
||||
- (EOModelerEmbedibleEditor *) activeEditor;
|
||||
- (EOModelerEmbedibleEditor *) embedibleEditorOfClass:(Class)eeClass;
|
||||
@end
|
||||
|
||||
|
||||
@interface EOModelerEmbedibleEditor : EOModelerEditor
|
||||
{
|
||||
EOModelerCompoundEditor *_parentEditor;
|
||||
}
|
||||
- (id)initWithParentEditor:(EOModelerCompoundEditor *)parentEditor;
|
||||
- (NSView *)mainView;
|
||||
- (BOOL) canSupportCurrentSelection;
|
||||
- (NSArray *)friendEditorClasses;
|
||||
@end
|
||||
|
||||
#endif // __EOModelerEditor_H__
|
||||
|
391
EOModeler/EOModelerEditor.m
Normal file
391
EOModeler/EOModelerEditor.m
Normal file
|
@ -0,0 +1,391 @@
|
|||
/**
|
||||
EOModelerEditor.m <title>EOModelerEditor Classes</title>
|
||||
|
||||
Copyright (C) 2005 Free Software Foundation, Inc.
|
||||
|
||||
Author: Matt Rice <ratmice@yahoo.com>
|
||||
Date: April 2005
|
||||
|
||||
This file is part of the GNUstep Database Library.
|
||||
|
||||
<license>
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; if not, write to the Free Software
|
||||
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
</license>
|
||||
**/
|
||||
|
||||
//#include <EOModeler/EOModeler.h>
|
||||
|
||||
#include <Foundation/NSArray.h>
|
||||
#include <Foundation/NSObject.h>
|
||||
|
||||
#include "EOModeler/EOModelerEditor.h"
|
||||
#include "EOModeler/EOModelerDocument.h"
|
||||
#include "EOModeler/EOModelerApp.h"
|
||||
|
||||
#include <Foundation/NSNotification.h>
|
||||
#include <Foundation/NSException.h>
|
||||
|
||||
#include <AppKit/NSView.h>
|
||||
|
||||
@implementation EOModelerEditor
|
||||
|
||||
- (EOModelerEditor *)initWithDocument:(EOModelerDocument *)document
|
||||
{
|
||||
if (self = [super init])
|
||||
{
|
||||
ASSIGN(_document,document);
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (EOModelerDocument *)document
|
||||
{
|
||||
return _document;
|
||||
}
|
||||
|
||||
- (void)setSelectionPath:(NSArray *)newSelection
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
}
|
||||
|
||||
- (NSArray *)selectionPath
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
}
|
||||
|
||||
- (void)activate
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
}
|
||||
|
||||
- (NSArray *)selectionWithinViewedObject
|
||||
{
|
||||
return [NSArray array];
|
||||
}
|
||||
|
||||
- (void)setSelectionWithinViewedObject:(NSArray *)newSelection
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
}
|
||||
|
||||
- (void)setViewedObjectPath:(NSArray *)newPath
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
}
|
||||
|
||||
- (NSArray *)viewedObjectPath
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation EOModelerCompoundEditor
|
||||
|
||||
- (id) initWithDocument:(id)doc
|
||||
{
|
||||
self = [super initWithDocument:doc];
|
||||
_editors = [[NSMutableArray alloc] init];
|
||||
_activeEditor = nil;
|
||||
_viewedObjectPath = [[NSArray alloc] initWithObjects:[doc model], nil];
|
||||
_selectionWithinViewedObject = [NSArray new];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (EOModelerEmbedibleEditor *)activeEditor
|
||||
{
|
||||
return _activeEditor;
|
||||
}
|
||||
|
||||
- (void)activateEditorWithClass:(Class)embedibleEditorClass
|
||||
{
|
||||
int i, count = [_editors count];
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
EOModelerEmbedibleEditor *anEditor = [_editors objectAtIndex:i];
|
||||
if ([anEditor isKindOfClass: embedibleEditorClass])
|
||||
{
|
||||
[anEditor activate];
|
||||
_activeEditor = anEditor;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)activateEmbeddedEditor:(EOModelerEmbedibleEditor *)editor
|
||||
{
|
||||
unsigned int index = [_editors indexOfObjectIdenticalTo: editor];
|
||||
if (index == NSNotFound)
|
||||
{
|
||||
[_editors addObject: editor];
|
||||
}
|
||||
[editor activate];
|
||||
_activeEditor = editor;
|
||||
}
|
||||
|
||||
- (EOModelerEmbedibleEditor *)embedibleEditorOfClass:(Class)editorClass
|
||||
{
|
||||
int i, count = [_editors count];
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
EOModelerEmbedibleEditor *anEditor = [_editors objectAtIndex:i];
|
||||
if ([anEditor isKindOfClass: editorClass])
|
||||
{
|
||||
return anEditor;
|
||||
}
|
||||
}
|
||||
{
|
||||
EOModelerEmbedibleEditor *newEditor = [[editorClass alloc] initWithParentEditor:self];
|
||||
[self registerEmbedibleEditor: newEditor];
|
||||
RELEASE(newEditor);
|
||||
return newEditor;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void)registerEmbedibleEditor:(EOModelerEmbedibleEditor *)editor
|
||||
{
|
||||
[_editors addObject:editor];
|
||||
}
|
||||
|
||||
|
||||
/* getting the selection */
|
||||
- (NSArray *)selectionPath
|
||||
{
|
||||
return [_viewedObjectPath arrayByAddingObject:_selectionWithinViewedObject];
|
||||
}
|
||||
|
||||
- (NSArray *) viewedObjectPath
|
||||
{
|
||||
return _viewedObjectPath;
|
||||
}
|
||||
- (NSArray *)selectionWithinViewedObject
|
||||
{
|
||||
return _selectionWithinViewedObject;
|
||||
}
|
||||
|
||||
|
||||
/* setting the selection */
|
||||
|
||||
- (void)setSelectionPath:(NSArray *)newSelection
|
||||
{
|
||||
unsigned int indexOfLast = [newSelection indexOfObject:[newSelection lastObject]];
|
||||
NSRange allButLastElement;
|
||||
/* int i,j;
|
||||
|
||||
|
||||
printf("%@\n",NSStringFromSelector(_cmd));
|
||||
for (i = 0; i < [newSelection count]; i++)
|
||||
{
|
||||
id foo = [newSelection objectAtIndex:i];
|
||||
if ([foo isKindOfClass:[NSArray class]])
|
||||
{
|
||||
printf("\t");
|
||||
for (j = 0; j < [foo count]; j++)
|
||||
printf("%@", [[foo objectAtIndex:j] class]);
|
||||
printf("\n");
|
||||
}
|
||||
else
|
||||
printf("%@\n", [[newSelection objectAtIndex:i] class]);
|
||||
|
||||
}
|
||||
*/
|
||||
if (indexOfLast != NSNotFound || indexOfLast != 1)
|
||||
{
|
||||
|
||||
allButLastElement.location = 0;
|
||||
allButLastElement.length = indexOfLast;
|
||||
|
||||
ASSIGN(_viewedObjectPath, [newSelection subarrayWithRange:allButLastElement]);
|
||||
ASSIGN(_selectionWithinViewedObject, [newSelection lastObject]);
|
||||
}
|
||||
else
|
||||
{
|
||||
[[NSException exceptionWithName:@"foo" reason:@"bar" userInfo:nil] raise];
|
||||
ASSIGN(_viewedObjectPath, [NSArray array]);
|
||||
ASSIGN(_selectionWithinViewedObject, [NSArray array]);
|
||||
}
|
||||
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:EOMSelectionChangedNotification
|
||||
object:nil];
|
||||
}
|
||||
|
||||
- (void) setSelectionWithinViewedObject:(NSArray *) newSelection
|
||||
{
|
||||
/*
|
||||
int i,j;
|
||||
printf("%@\n",NSStringFromSelector(_cmd));
|
||||
for (i = 0; i < [newSelection count]; i++)
|
||||
{
|
||||
id foo = [newSelection objectAtIndex:i];
|
||||
if ([foo isKindOfClass:[NSArray class]])
|
||||
{
|
||||
printf("\t");
|
||||
for (j = 0; j < [foo count]; j++)
|
||||
printf("%@", [[foo objectAtIndex:j] class]);
|
||||
printf("\n");
|
||||
}
|
||||
else
|
||||
printf("%@\n", [[newSelection objectAtIndex:i] class]);
|
||||
} */
|
||||
ASSIGN(_selectionWithinViewedObject, newSelection);
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:EOMSelectionChangedNotification
|
||||
object:nil];
|
||||
}
|
||||
|
||||
- (void) setViewedObjectPath:(NSArray *)newPath
|
||||
{
|
||||
/*
|
||||
int i,j;
|
||||
printf("%@\n",NSStringFromSelector(_cmd));
|
||||
for (i = 0; i < [newPath count]; i++)
|
||||
{
|
||||
id foo = [newPath objectAtIndex:i];
|
||||
if ([foo isKindOfClass:[NSArray class]])
|
||||
{
|
||||
printf("\t");
|
||||
for (j = 0; j < [foo count]; j++)
|
||||
printf("%@", [[foo objectAtIndex:j] class]);
|
||||
printf("\n");
|
||||
}
|
||||
else
|
||||
printf("%@\n", [[newPath objectAtIndex:i] class]);
|
||||
}
|
||||
*/
|
||||
ASSIGN(_viewedObjectPath, newPath);
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:EOMSelectionChangedNotification
|
||||
object:nil];
|
||||
}
|
||||
|
||||
- (void)setStoredProceduresSelected:(BOOL)selected
|
||||
{
|
||||
_storedProceduresSelected = selected;
|
||||
}
|
||||
|
||||
- (BOOL)storedProceduresSelected
|
||||
{
|
||||
if ([[_viewedObjectPath lastObject] isKindOfClass: NSClassFromString(@"EOModel")])
|
||||
{
|
||||
return _storedProceduresSelected;
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
/* viewing the selection */
|
||||
|
||||
- (void)viewSelectedObject
|
||||
{
|
||||
/*
|
||||
if (![_selectionWithinViewedObject count])
|
||||
return;
|
||||
{
|
||||
id object = [_selectionWithinViewedObject objectAtIndex:0];
|
||||
[self setSelectionPath: [[_viewedObjectPath arrayByAddingObject: object]
|
||||
arrayByAddingObject:[NSArray array]]];
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
- (void) activate
|
||||
{
|
||||
[EOMApp setCurrentEditor:self];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation EOModelerEmbedibleEditor
|
||||
|
||||
- (EOModelerEmbedibleEditor *) initWithParentEditor:(EOModelerCompoundEditor *)parentEditor
|
||||
{
|
||||
if (self = [super initWithDocument: [parentEditor document]])
|
||||
{
|
||||
_parentEditor = parentEditor;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (EOModelerCompoundEditor *)parentEditor
|
||||
{
|
||||
return _parentEditor;
|
||||
}
|
||||
|
||||
- (void)selectionDidChange:(NSNotification *)notification
|
||||
{
|
||||
if (self == [_parentEditor activeEditor])
|
||||
{
|
||||
[self activate];
|
||||
}
|
||||
}
|
||||
/** subclasses should return YES if they can edit the current selection (should return NO if there is no selection */
|
||||
- (BOOL)canSupportCurrentSelection
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
/* subclasses should implement */
|
||||
- (NSArray *)friendEditorClasses
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
/* subclasses should implement */
|
||||
- (NSView *)mainView
|
||||
{
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSString *)pathViewPreferenceHint
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
}
|
||||
|
||||
- (void)print
|
||||
{
|
||||
[self subclassResponsibility: _cmd];
|
||||
}
|
||||
|
||||
/* getting the selection */
|
||||
- (NSArray *)selectionPath
|
||||
{
|
||||
return [[self parentEditor] selectionPath];
|
||||
}
|
||||
|
||||
- (NSArray *) viewedObjectPath
|
||||
{
|
||||
return [[self parentEditor] viewedObjectPath];
|
||||
}
|
||||
- (NSArray *)selectionWithinViewedObject
|
||||
{
|
||||
return [[self parentEditor] selectionWithinViewedObject];
|
||||
}
|
||||
|
||||
|
||||
/* setting the selection */
|
||||
|
||||
- (void)setSelectionPath:(NSArray *)newSelection
|
||||
{
|
||||
[[self parentEditor] setSelectionPath: newSelection];
|
||||
}
|
||||
- (void) setSelectionWithinViewedObject:(NSArray *) newSelection
|
||||
{
|
||||
[[self parentEditor] setSelectionWithinViewedObject: newSelection];
|
||||
}
|
||||
|
||||
- (void) setViewedObjectPath:(NSArray *)newPath
|
||||
{
|
||||
[[self parentEditor] setViewedObjectPath: newPath];
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -30,24 +30,41 @@ include $(GNUSTEP_MAKEFILES)/common.make
|
|||
include ../Version
|
||||
|
||||
# The library to be compiled
|
||||
LIBRARY_NAME=libgnustep-db2modeler
|
||||
NATIVE_LIBRARY_NAME=gnustep-db2modeler
|
||||
|
||||
# The C source files to be compiled
|
||||
libgnustep-db2modeler_C_FILES =
|
||||
gnustep-db2modeler_C_FILES =
|
||||
|
||||
# The Objective-C source files to be compiled
|
||||
libgnustep-db2modeler_OBJC_FILES = EOModelExtensions.m
|
||||
gnustep-db2modeler_OBJC_FILES = \
|
||||
EOModelExtensions.m \
|
||||
EOMInspector.m \
|
||||
EOModelExtensions.m \
|
||||
EOModelerDocument.m \
|
||||
EOMInspectorController.m \
|
||||
EOModelerApp.m \
|
||||
EOModelerEditor.m
|
||||
|
||||
libgnustep-db2modeler_HEADER_FILES_DIR = .
|
||||
libgnustep-db2modeler_HEADER_FILES_INSTALL_DIR = /EOModeler
|
||||
|
||||
libgnustep-db2modeler_HEADER_FILES = EOModelExtensions.h
|
||||
gnustep-db2modeler_HEADER_FILES_DIR = .
|
||||
gnustep-db2modeler_HEADER_FILES_INSTALL_DIR = /EOModeler
|
||||
|
||||
gnustep-db2modeler_HEADER_FILES = \
|
||||
EOModelExtensions.h \
|
||||
EOMInspector.h \
|
||||
EOModelExtensions.h \
|
||||
EOModelerDocument.h \
|
||||
EOMInspectorController.h \
|
||||
EOModelerApp.h \
|
||||
EOModelerEditor.h \
|
||||
EODefines.h
|
||||
|
||||
|
||||
|
||||
-include Makefile.preamble
|
||||
|
||||
-include GNUmakefile.local
|
||||
|
||||
include $(GNUSTEP_MAKEFILES)/library.make
|
||||
include $(GNUSTEP_MAKEFILES)/native-library.make
|
||||
|
||||
-include Makefile.postamble
|
||||
|
|
|
@ -66,7 +66,7 @@ ADDITIONAL_INSTALL_DIRS =
|
|||
# all the libraries the target library depends upon.
|
||||
|
||||
ifneq ($(FOUNDATION_LIBRARY_NAME),)
|
||||
LIBRARIES_DEPEND_UPON = -l$(FOUNDATION_LIBRARY_NAME)
|
||||
LIBRARIES_DEPEND_UPON = $(FND_LIBS)
|
||||
endif
|
||||
ifneq ($(FOUNDATION_LIB),gnu)
|
||||
LIBRARIES_DEPEND_UPON += -lgnustep-baseadd
|
||||
|
|
|
@ -29,7 +29,12 @@ include ./Version
|
|||
#
|
||||
# The list of subproject directories
|
||||
#
|
||||
SUBPROJECTS = EOControl EOAccess EOAdaptors EOModeler Tools
|
||||
SUBPROJECTS = EOControl EOAccess EOAdaptors Tools
|
||||
|
||||
ifeq ($(GUI_MAKE_LOADED),yes)
|
||||
SUBPROJECTS += EOInterface EOModeler DBModeler GDL2Palette
|
||||
endif
|
||||
|
||||
DOCUMENT_NAME = GDL2
|
||||
|
||||
GDL2_AGSDOC_FILES = GDL2.gsdoc
|
||||
|
|
Loading…
Reference in a new issue