Search in sources :

Example 21 with Entity

use of org.applause.lang.applauseDsl.Entity in project applause by applause.

the class DefaultDetailsScreenModuleFileCompiler method compileModule.

public CharSequence compileModule(final Screen it) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("#import \"");
    String _screenHeaderFileName = this._defaultDetailsScreenClassExtensions.screenHeaderFileName(it);
    _builder.append(_screenHeaderFileName, "");
    _builder.append("\"");
    _builder.newLineIfNotEmpty();
    _builder.append("#import \"QRootElement.h\"");
    _builder.newLine();
    _builder.append("#import \"QEntryElement.h\"");
    _builder.newLine();
    _builder.append("#import \"QBooleanElement.h\"");
    _builder.newLine();
    _builder.append("#import \"QDateTimeInlineElement.h\"");
    _builder.newLine();
    _builder.append("#import \"QButtonElement.h\"");
    _builder.newLine();
    _builder.append("#import \"");
    Entity _resourceType = this._defaultDetailsScreenClassExtensions.resourceType(it);
    String _entityDataAccessCategoryHeaderFileName = this._dataAccessClassExtensions.entityDataAccessCategoryHeaderFileName(_resourceType);
    _builder.append(_entityDataAccessCategoryHeaderFileName, "");
    _builder.append("\"");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    _builder.append("@interface ");
    String _controllerClassName = this._defaultDetailsScreenClassExtensions.controllerClassName(it);
    _builder.append(_controllerClassName, "");
    _builder.append(" ()");
    _builder.newLineIfNotEmpty();
    _builder.append("@property(nonatomic) enum DetailsViewMode mode;");
    _builder.newLine();
    _builder.append("@property(nonatomic, copy) void (^doneBlock)(");
    Entity _resourceType_1 = this._defaultDetailsScreenClassExtensions.resourceType(it);
    String _typeName = this._typeExtensions.typeName(_resourceType_1);
    _builder.append(_typeName, "");
    _builder.append(" *);");
    _builder.newLineIfNotEmpty();
    _builder.append("@end");
    _builder.newLine();
    _builder.newLine();
    _builder.append("@implementation ");
    String _controllerClassName_1 = this._defaultDetailsScreenClassExtensions.controllerClassName(it);
    _builder.append(_controllerClassName_1, "");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    _builder.append("enum DetailsViewMode {");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("DetailsViewModeAdd,");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("DetailsViewModeEdit,");
    _builder.newLine();
    _builder.append("};");
    _builder.newLine();
    _builder.append("typedef enum DetailsViewMode DetailsViewMode;");
    _builder.newLine();
    _builder.newLine();
    _builder.append("+ (void)presentForAddingNewItemFromParent:(UIViewController *)parent onDone:(void (^)(");
    Entity _resourceType_2 = this._defaultDetailsScreenClassExtensions.resourceType(it);
    String _typeName_1 = this._typeExtensions.typeName(_resourceType_2);
    _builder.append(_typeName_1, "");
    _builder.append(" *item))doneBlock");
    _builder.newLineIfNotEmpty();
    _builder.append("{");
    _builder.newLine();
    _builder.append("\t");
    String _controllerClassName_2 = this._defaultDetailsScreenClassExtensions.controllerClassName(it);
    _builder.append(_controllerClassName_2, "	");
    _builder.append(" *detailsViewController = [[");
    String _controllerClassName_3 = this._defaultDetailsScreenClassExtensions.controllerClassName(it);
    _builder.append(_controllerClassName_3, "	");
    _builder.append(" alloc] initWithMode:DetailsViewModeAdd];");
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    _builder.append("detailsViewController.item = [[");
    Entity _resourceType_3 = this._defaultDetailsScreenClassExtensions.resourceType(it);
    String _typeName_2 = this._typeExtensions.typeName(_resourceType_3);
    _builder.append(_typeName_2, "	");
    _builder.append(" alloc] init];");
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    _builder.append("detailsViewController.doneBlock = ^(");
    Entity _resourceType_4 = this._defaultDetailsScreenClassExtensions.resourceType(it);
    String _typeName_3 = this._typeExtensions.typeName(_resourceType_4);
    _builder.append(_typeName_3, "	");
    _builder.append(" *editedItem)");
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    _builder.append("{");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("[parent dismissViewControllerAnimated:YES completion:nil];");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("if (doneBlock) {");
    _builder.newLine();
    _builder.append("\t\t\t");
    _builder.append("doneBlock(editedItem);");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("};");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:detailsViewController];");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("[parent presentViewController:navigationController animated:YES completion:nil];");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    _builder.newLine();
    _builder.append("+ (void)presentForEditingItem:(");
    Entity _resourceType_5 = this._defaultDetailsScreenClassExtensions.resourceType(it);
    String _typeName_4 = this._typeExtensions.typeName(_resourceType_5);
    _builder.append(_typeName_4, "");
    _builder.append(" *)item fromParent:(UIViewController *)parent onDone:(void (^)(");
    Entity _resourceType_6 = this._defaultDetailsScreenClassExtensions.resourceType(it);
    String _typeName_5 = this._typeExtensions.typeName(_resourceType_6);
    _builder.append(_typeName_5, "");
    _builder.append(" *editedItem))doneBlock");
    _builder.newLineIfNotEmpty();
    _builder.append("{");
    _builder.newLine();
    _builder.append("\t");
    String _controllerClassName_4 = this._defaultDetailsScreenClassExtensions.controllerClassName(it);
    _builder.append(_controllerClassName_4, "	");
    _builder.append(" *detailsViewController = [[");
    String _controllerClassName_5 = this._defaultDetailsScreenClassExtensions.controllerClassName(it);
    _builder.append(_controllerClassName_5, "	");
    _builder.append(" alloc] initWithMode:DetailsViewModeEdit];");
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    _builder.append("detailsViewController.item = item;");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("detailsViewController.doneBlock = ^(");
    Entity _resourceType_7 = this._defaultDetailsScreenClassExtensions.resourceType(it);
    String _typeName_6 = this._typeExtensions.typeName(_resourceType_7);
    _builder.append(_typeName_6, "	");
    _builder.append(" *editedItem)");
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    _builder.append("{");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("[parent.navigationController popViewControllerAnimated:YES];");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("if (doneBlock) {");
    _builder.newLine();
    _builder.append("\t\t\t");
    _builder.append("doneBlock(editedItem);");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("};");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("[parent.navigationController pushViewController:detailsViewController animated:YES];");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    _builder.newLine();
    _builder.append("- (id)initWithMode:(DetailsViewMode)mode");
    _builder.newLine();
    _builder.append("{");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("self = [super initWithRoot:[self createForm]];");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("if (self) {");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("self.mode = mode;");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("[self createActionButtons];");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("return self;");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    _builder.newLine();
    _builder.append("- (void)createActionButtons");
    _builder.newLine();
    _builder.append("{");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("if (self.mode == DetailsViewModeAdd) {");
    _builder.newLine();
    _builder.append("\t\t");
    _builder.append("self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCancel");
    _builder.newLine();
    _builder.append("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  ");
    _builder.append("target:self");
    _builder.newLine();
    _builder.append("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t  ");
    _builder.append("action:@selector(onCancel)];");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone");
    _builder.newLine();
    _builder.append("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   ");
    _builder.append("target:self");
    _builder.newLine();
    _builder.append("\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t   ");
    _builder.append("action:@selector(onDone)];");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    _builder.newLine();
    _builder.append("- (void)onDone");
    _builder.newLine();
    _builder.append("{");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("[self.root fetchValueUsingBindingsIntoObject:self.item];");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("if (self.mode == DetailsViewModeAdd) {");
    _builder.newLine();
    _builder.append("\t\t");
    CharSequence _compileCreateNewItemFragment = this.compileCreateNewItemFragment(it);
    _builder.append(_compileCreateNewItemFragment, "		");
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("else {");
    _builder.newLine();
    _builder.append("\t\t");
    CharSequence _compileUpdateItemFragment = this.compileUpdateItemFragment(it);
    _builder.append(_compileUpdateItemFragment, "		");
    _builder.newLineIfNotEmpty();
    _builder.append("\t");
    _builder.append("}");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    _builder.newLine();
    _builder.append("- (void)onCancel");
    _builder.newLine();
    _builder.append("{");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("[self.presentingViewController dismissViewControllerAnimated:YES completion:nil];");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    _builder.newLine();
    _builder.append("- (void)setItem:(");
    Entity _resourceType_8 = this._defaultDetailsScreenClassExtensions.resourceType(it);
    String _typeName_7 = this._typeExtensions.typeName(_resourceType_8);
    _builder.append(_typeName_7, "");
    _builder.append(" *)item");
    _builder.newLineIfNotEmpty();
    _builder.append("{");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("_item = item;");
    _builder.newLine();
    _builder.append("\t");
    _builder.append("[self.root bindToObject:self.item];");
    _builder.newLine();
    _builder.append("}");
    _builder.newLine();
    _builder.newLine();
    CharSequence _compileForm = this.compileForm(it);
    _builder.append(_compileForm, "");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    _builder.append("@end");
    _builder.newLine();
    return _builder;
}
Also used : Entity(org.applause.lang.applauseDsl.Entity) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation)

Example 22 with Entity

use of org.applause.lang.applauseDsl.Entity in project applause by applause.

the class EntityHeaderFileCompiler method compileHeader.

public CharSequence compileHeader(final Entity it) {
    StringConcatenation _builder = new StringConcatenation();
    _builder.append("#import <Foundation/Foundation.h>");
    _builder.newLine();
    CharSequence _superTypeForwardDeclaration = this.superTypeForwardDeclaration(it);
    _builder.append(_superTypeForwardDeclaration, "");
    _builder.newLineIfNotEmpty();
    _builder.newLine();
    _builder.append("@interface ");
    String _name = it.getName();
    _builder.append(_name, "");
    _builder.append(" : ");
    Entity _superType = it.getSuperType();
    String _typeName = this._typeExtensions.typeName(_superType);
    _builder.append(_typeName, "");
    _builder.newLineIfNotEmpty();
    {
        EList<Attribute> _attributes = it.getAttributes();
        for (final Attribute attribute : _attributes) {
            CharSequence _compile = this.compile(attribute);
            _builder.append(_compile, "");
            _builder.newLineIfNotEmpty();
        }
    }
    _builder.append("@end");
    _builder.newLine();
    return _builder;
}
Also used : Entity(org.applause.lang.applauseDsl.Entity) EList(org.eclipse.emf.common.util.EList) Attribute(org.applause.lang.applauseDsl.Attribute) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation)

Example 23 with Entity

use of org.applause.lang.applauseDsl.Entity in project applause by applause.

the class EntityModuleFileCompiler method superTypeImportDeclaration.

public CharSequence superTypeImportDeclaration(final Entity it) {
    StringConcatenation _builder = new StringConcatenation();
    {
        Entity _superType = it.getSuperType();
        boolean _notEquals = (!Objects.equal(_superType, null));
        if (_notEquals) {
            _builder.append("#import \"");
            Entity _superType_1 = it.getSuperType();
            String _entityModelHeaderFileName = this._entityClassExtensions.entityModelHeaderFileName(_superType_1);
            _builder.append(_entityModelHeaderFileName, "");
            _builder.append("\"");
        }
    }
    _builder.newLineIfNotEmpty();
    return _builder;
}
Also used : Entity(org.applause.lang.applauseDsl.Entity) StringConcatenation(org.eclipse.xtend2.lib.StringConcatenation)

Example 24 with Entity

use of org.applause.lang.applauseDsl.Entity in project applause by applause.

the class DefaultDetailsScreenClassExtensions method resourceType.

public Entity resourceType(final Screen it) {
    DataSourceCall _datasource = it.getDatasource();
    DataSource _datasource_1 = _datasource.getDatasource();
    Entity _resourceType = _datasource_1.getResourceType();
    return _resourceType;
}
Also used : Entity(org.applause.lang.applauseDsl.Entity) DataSourceCall(org.applause.lang.applauseDsl.DataSourceCall) DataSource(org.applause.lang.applauseDsl.DataSource)

Example 25 with Entity

use of org.applause.lang.applauseDsl.Entity in project applause by applause.

the class DataAccessCompiler method doGenerate.

public void doGenerate(final Resource resource, final IFileSystemAccess fsa) {
    TreeIterator<EObject> _allContents = resource.getAllContents();
    Iterable<EObject> _iterable = IteratorExtensions.<EObject>toIterable(_allContents);
    Iterable<DataSource> _filter = Iterables.<DataSource>filter(_iterable, DataSource.class);
    final Procedure1<DataSource> _function = new Procedure1<DataSource>() {

        public void apply(final DataSource it) {
            Entity _resourceType = it.getResourceType();
            String _entityDataAccessCategoryHeaderFileName = DataAccessCompiler.this._dataAccessClassExtensions.entityDataAccessCategoryHeaderFileName(_resourceType);
            CharSequence _compileHeaderFile = DataAccessCompiler.this._entityDataAccessHeaderFileCompiler.compileHeaderFile(it);
            fsa.generateFile(_entityDataAccessCategoryHeaderFileName, IosOutputConfigurationProvider.IOS_OUTPUT_DATAACCESS, _compileHeaderFile);
            Entity _resourceType_1 = it.getResourceType();
            String _entityDataAccessCategoryModuleFileName = DataAccessCompiler.this._dataAccessClassExtensions.entityDataAccessCategoryModuleFileName(_resourceType_1);
            CharSequence _compileModuleFile = DataAccessCompiler.this._entityDataAccessModuleFileCompiler.compileModuleFile(it);
            fsa.generateFile(_entityDataAccessCategoryModuleFileName, IosOutputConfigurationProvider.IOS_OUTPUT_DATAACCESS, _compileModuleFile);
        }
    };
    IterableExtensions.<DataSource>forEach(_filter, _function);
}
Also used : Entity(org.applause.lang.applauseDsl.Entity) EObject(org.eclipse.emf.ecore.EObject) Procedure1(org.eclipse.xtext.xbase.lib.Procedures.Procedure1) DataSource(org.applause.lang.applauseDsl.DataSource)

Aggregations

Entity (org.applause.lang.applauseDsl.Entity)34 StringConcatenation (org.eclipse.xtend2.lib.StringConcatenation)17 DataSource (org.applause.lang.applauseDsl.DataSource)5 Model (org.applause.lang.applauseDsl.Model)5 NamedElement (org.applause.lang.applauseDsl.NamedElement)5 DataSourceAccessMethod (org.applause.lang.applauseDsl.DataSourceAccessMethod)4 RESTSpecification (org.applause.lang.applauseDsl.RESTSpecification)4 RESTURL (org.applause.lang.applauseDsl.RESTURL)4 Attribute (org.applause.lang.applauseDsl.Attribute)3 DataSourceCall (org.applause.lang.applauseDsl.DataSourceCall)3 Screen (org.applause.lang.applauseDsl.Screen)3 EList (org.eclipse.emf.common.util.EList)3 EObject (org.eclipse.emf.ecore.EObject)2 ENotificationImpl (org.eclipse.emf.ecore.impl.ENotificationImpl)2 Type (org.applause.lang.applauseDsl.Type)1 UIComponentMemberConfiguration (org.applause.lang.applauseDsl.UIComponentMemberConfiguration)1 Function1 (org.eclipse.xtext.xbase.lib.Functions.Function1)1 Procedure1 (org.eclipse.xtext.xbase.lib.Procedures.Procedure1)1