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;
}
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;
}
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;
}
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;
}
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);
}
Aggregations