Commit addc0172b021beab6df6403b011c59ed1e41f478

Authored by carlos.alberto
1 parent a2722954
Exists in master

Alteração no mecanismo de associação dos tipos de dados ao tipo de coluna do banco de dados

cit-esi-api/src/main/java/br/com/centralit/esi/api/data/core/DataObjectUtil.java
@@ -299,7 +299,7 @@ public final class DataObjectUtil { @@ -299,7 +299,7 @@ public final class DataObjectUtil {
299 if (i > 0) { 299 if (i > 0) {
300 sql.append(","); 300 sql.append(",");
301 } 301 }
302 - sql.append(System.getProperty("line.separator").toString()+" "+dataObject.convertName(dataColumn.getName())+" "+dataColumn.getType().getName()); 302 + sql.append(System.getProperty("line.separator").toString()+" "+dataObject.convertName(dataColumn.getName())+" "+dataColumn.getDatabaseType());
303 if (dataColumn.getType().getAllowSize() != null && dataColumn.getType().getAllowSize() && dataColumn.getSize() != null) { 303 if (dataColumn.getType().getAllowSize() != null && dataColumn.getType().getAllowSize() && dataColumn.getSize() != null) {
304 sql.append("("+dataColumn.getSize()+")"); 304 sql.append("("+dataColumn.getSize()+")");
305 } 305 }
@@ -735,8 +735,9 @@ public final class DataObjectUtil { @@ -735,8 +735,9 @@ public final class DataObjectUtil {
735 String[] typeArray = rsColumns.getString("TYPE_NAME").split(" "); 735 String[] typeArray = rsColumns.getString("TYPE_NAME").split(" ");
736 String type = typeArray[0]; 736 String type = typeArray[0];
737 for (DatabaseDomain databaseDomain : dataSource.getDatabase().getTypes()) { 737 for (DatabaseDomain databaseDomain : dataSource.getDatabase().getTypes()) {
738 - if (databaseDomain.getDataType().getName().equalsIgnoreCase(type)) { 738 + if (databaseDomain.getName().equalsIgnoreCase(type)) {
739 dataColumn.setType(databaseDomain.getDataType()); 739 dataColumn.setType(databaseDomain.getDataType());
  740 + dataColumn.setDatabaseType(type);
740 dataColumn.setWidget(databaseDomain.getDataType().getWidget()); 741 dataColumn.setWidget(databaseDomain.getDataType().getWidget());
741 dataColumn.setWidth(databaseDomain.getDataType().getWidth() != null ? databaseDomain.getDataType().getWidth() : new Integer(1)); 742 dataColumn.setWidth(databaseDomain.getDataType().getWidth() != null ? databaseDomain.getDataType().getWidth() : new Integer(1));
742 if (typeArray.length > 1 && typeArray[1].trim().equalsIgnoreCase("IDENTITY")) { 743 if (typeArray.length > 1 && typeArray[1].trim().equalsIgnoreCase("IDENTITY")) {
cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DataColumn.java
@@ -60,6 +60,9 @@ public class DataColumn extends DataField { @@ -60,6 +60,9 @@ public class DataColumn extends DataField {
60 60
61 @JsonView({ Views.EsiDataObjectEditView.class, Views.EsiPackageExportView.class}) 61 @JsonView({ Views.EsiDataObjectEditView.class, Views.EsiPackageExportView.class})
62 private Boolean autoIncrement; 62 private Boolean autoIncrement;
  63 +
  64 + @JsonView({ Views.EsiDataObjectEditView.class, Views.EsiPackageExportView.class})
  65 + private String databaseType;
63 66
64 @Transient 67 @Transient
65 @JsonView({ Views.EsiDataObjectEditView.class}) 68 @JsonView({ Views.EsiDataObjectEditView.class})
@@ -270,4 +273,12 @@ public class DataColumn extends DataField { @@ -270,4 +273,12 @@ public class DataColumn extends DataField {
270 formComponentPropertyValue.setIntegerValue(new Long(this.getSize())); 273 formComponentPropertyValue.setIntegerValue(new Long(this.getSize()));
271 } 274 }
272 } 275 }
  276 +
  277 + public String getDatabaseType() {
  278 + return databaseType;
  279 + }
  280 +
  281 + public void setDatabaseType(String databaseType) {
  282 + this.databaseType = databaseType;
  283 + }
273 } 284 }
cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DataType.java
@@ -14,10 +14,12 @@ import br.com.centralit.esi.api.resource.model.FormWidget; @@ -14,10 +14,12 @@ import br.com.centralit.esi.api.resource.model.FormWidget;
14 import br.com.centralit.framework.json.Views; 14 import br.com.centralit.framework.json.Views;
15 import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit; 15 import br.com.centralit.framework.model.arquitetura.PersistentObjectAudit;
16 16
  17 +import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
17 import com.fasterxml.jackson.annotation.JsonView; 18 import com.fasterxml.jackson.annotation.JsonView;
18 19
19 @Entity 20 @Entity
20 @Table(name="ESI_DataType") 21 @Table(name="ESI_DataType")
  22 +@JsonIgnoreProperties({ "$index" })
21 public class DataType extends PersistentObjectAudit { 23 public class DataType extends PersistentObjectAudit {
22 24
23 /** 25 /**
@@ -27,7 +29,7 @@ public class DataType extends PersistentObjectAudit { @@ -27,7 +29,7 @@ public class DataType extends PersistentObjectAudit {
27 29
28 @Id 30 @Id
29 @GeneratedValue(strategy = GenerationType.AUTO) 31 @GeneratedValue(strategy = GenerationType.AUTO)
30 - @JsonView({Views.EsiDataObjectListView.class, Views.EsiDataObjectEditView.class}) 32 + @JsonView({Views.GenericView.class})
31 protected Long id; 33 protected Long id;
32 34
33 @Column(nullable = false, length=100) 35 @Column(nullable = false, length=100)
cit-esi-api/src/main/java/br/com/centralit/esi/api/data/model/DatabaseDomain.java
1 package br.com.centralit.esi.api.data.model; 1 package br.com.centralit.esi.api.data.model;
2 2
  3 +import javax.persistence.Column;
3 import javax.persistence.Entity; 4 import javax.persistence.Entity;
4 import javax.persistence.FetchType; 5 import javax.persistence.FetchType;
5 import javax.persistence.GeneratedValue; 6 import javax.persistence.GeneratedValue;
@@ -12,10 +13,12 @@ import br.com.centralit.framework.json.Views; @@ -12,10 +13,12 @@ import br.com.centralit.framework.json.Views;
12 import br.com.centralit.framework.model.arquitetura.PersistentObject; 13 import br.com.centralit.framework.model.arquitetura.PersistentObject;
13 14
14 import com.fasterxml.jackson.annotation.JsonIgnore; 15 import com.fasterxml.jackson.annotation.JsonIgnore;
  16 +import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
15 import com.fasterxml.jackson.annotation.JsonView; 17 import com.fasterxml.jackson.annotation.JsonView;
16 18
17 @Entity 19 @Entity
18 @Table(name="ESI_DatabaseDomain") 20 @Table(name="ESI_DatabaseDomain")
  21 +@JsonIgnoreProperties({ "$index" })
19 public class DatabaseDomain extends PersistentObject { 22 public class DatabaseDomain extends PersistentObject {
20 23
21 /** 24 /**
@@ -25,23 +28,28 @@ public class DatabaseDomain extends PersistentObject { @@ -25,23 +28,28 @@ public class DatabaseDomain extends PersistentObject {
25 28
26 @Id 29 @Id
27 @GeneratedValue(strategy = GenerationType.AUTO) 30 @GeneratedValue(strategy = GenerationType.AUTO)
28 - @JsonView({Views.EsiDataObjectListView.class, Views.EsiDataObjectEditView.class}) 31 + @JsonView({Views.GenericView.class})
29 protected Long id; 32 protected Long id;
30 33
  34 + @Column(nullable = false, length=100)
  35 + @JsonView({ Views.GenericView.class})
  36 + private String name;
  37 +
31 @ManyToOne(fetch = FetchType.LAZY, optional = false) 38 @ManyToOne(fetch = FetchType.LAZY, optional = false)
32 @JsonIgnore 39 @JsonIgnore
33 private Database database; 40 private Database database;
34 41
35 @ManyToOne(fetch = FetchType.LAZY, optional = false) 42 @ManyToOne(fetch = FetchType.LAZY, optional = false)
36 - @JsonView({ Views.EsiDataObjectListView.class, Views.EsiPackageExportView.class}) 43 + @JsonView({ Views.EsiDataObjectListView.class, Views.EsiDataObjectEditView.class, Views.EsiPackageExportView.class})
37 private DataType dataType; 44 private DataType dataType;
38 45
39 public DatabaseDomain() { 46 public DatabaseDomain() {
40 // TODO Auto-generated constructor stub 47 // TODO Auto-generated constructor stub
41 } 48 }
42 49
43 - public DatabaseDomain(Database database, DataType dataType) { 50 + public DatabaseDomain(Database database, String name, DataType dataType) {
44 this.database = database; 51 this.database = database;
  52 + this.name = name;
45 this.dataType = dataType; 53 this.dataType = dataType;
46 } 54 }
47 55
@@ -70,4 +78,12 @@ public class DatabaseDomain extends PersistentObject { @@ -70,4 +78,12 @@ public class DatabaseDomain extends PersistentObject {
70 this.id = id; 78 this.id = id;
71 } 79 }
72 80
  81 + public String getName() {
  82 + return name;
  83 + }
  84 +
  85 + public void setName(String name) {
  86 + this.name = name;
  87 + }
  88 +
73 } 89 }
cit-esi-api/src/main/java/br/com/centralit/esi/api/data/service/impl/DataObjectServiceImpl.java
@@ -15,6 +15,8 @@ import br.com.centralit.esi.api.data.model.CustomSQL; @@ -15,6 +15,8 @@ import br.com.centralit.esi.api.data.model.CustomSQL;
15 import br.com.centralit.esi.api.data.model.DataColumn; 15 import br.com.centralit.esi.api.data.model.DataColumn;
16 import br.com.centralit.esi.api.data.model.DataField; 16 import br.com.centralit.esi.api.data.model.DataField;
17 import br.com.centralit.esi.api.data.model.DataObject; 17 import br.com.centralit.esi.api.data.model.DataObject;
  18 +import br.com.centralit.esi.api.data.model.Database;
  19 +import br.com.centralit.esi.api.data.model.DatabaseDomain;
18 import br.com.centralit.esi.api.data.model.Relationship; 20 import br.com.centralit.esi.api.data.model.Relationship;
19 import br.com.centralit.esi.api.data.model.RelationshipColumn; 21 import br.com.centralit.esi.api.data.model.RelationshipColumn;
20 import br.com.centralit.esi.api.data.service.CustomSQLService; 22 import br.com.centralit.esi.api.data.service.CustomSQLService;
@@ -493,11 +495,12 @@ public class DataObjectServiceImpl extends GenericServiceImpl<DataObject, Long> @@ -493,11 +495,12 @@ public class DataObjectServiceImpl extends GenericServiceImpl<DataObject, Long>
493 dataObject.setGenerateController(false); 495 dataObject.setGenerateController(false);
494 dataObject.setGenerateForm(false); 496 dataObject.setGenerateForm(false);
495 497
  498 + this.save(dataObject, pack.getReplaceElement());
  499 +
496 if (pack.getExecuteDDL()) { 500 if (pack.getExecuteDDL()) {
  501 + DataObjectUtil.buildDDL(dataObject);
497 this.executeDDL(dataObject); 502 this.executeDDL(dataObject);
498 } 503 }
499 -  
500 - this.save(dataObject, pack.getReplaceElement());  
501 } 504 }
502 505
503 for (DataObject dataObject : dataObjects) { 506 for (DataObject dataObject : dataObjects) {
@@ -583,6 +586,7 @@ public class DataObjectServiceImpl extends GenericServiceImpl<DataObject, Long> @@ -583,6 +586,7 @@ public class DataObjectServiceImpl extends GenericServiceImpl<DataObject, Long>
583 connection.commit(); 586 connection.commit();
584 } 587 }
585 } catch (Exception e) { 588 } catch (Exception e) {
  589 + System.out.println(dataObject.getDdl());
586 throw new EsiBusinessException(e); 590 throw new EsiBusinessException(e);
587 }finally{ 591 }finally{
588 this.dataSourceService.close(connection); 592 this.dataSourceService.close(connection);
@@ -633,14 +637,49 @@ public class DataObjectServiceImpl extends GenericServiceImpl<DataObject, Long> @@ -633,14 +637,49 @@ public class DataObjectServiceImpl extends GenericServiceImpl<DataObject, Long>
633 sourceObject.setGenerateForm(sourceObject.getFormVersion() != null); 637 sourceObject.setGenerateForm(sourceObject.getFormVersion() != null);
634 sourceObject.setGenerateController(sourceObject.getFormVersion() != null); 638 sourceObject.setGenerateController(sourceObject.getFormVersion() != null);
635 sourceObject.setDataSource(dataSourceService.save(sourceObject.getDataSource(), false)); 639 sourceObject.setDataSource(dataSourceService.save(sourceObject.getDataSource(), false));
636 - 640 +
  641 + Database database = sourceObject.getDataSource().getDatabase();
637 if (sourceObject.getFields() != null) { 642 if (sourceObject.getFields() != null) {
638 for (DataColumn dataColumn: sourceObject.getColumns()) { 643 for (DataColumn dataColumn: sourceObject.getColumns()) {
639 dataColumn.setId(null); 644 dataColumn.setId(null);
640 if (dataColumn.getWidget() != null) { 645 if (dataColumn.getWidget() != null) {
641 dataColumn.setWidget(formWidgetService.findByName(dataColumn.getWidget().getName())); 646 dataColumn.setWidget(formWidgetService.findByName(dataColumn.getWidget().getName()));
642 } 647 }
643 - dataColumn.setType(dataTypeService.findByName(dataColumn.getType().getName())); 648 + String name = dataColumn.getType().getName();
  649 + dataColumn.setType(dataTypeService.findByName(name));
  650 + if (dataColumn.getType() == null) {
  651 + String databaseType = dataColumn.getDatabaseType() != null ? dataColumn.getDatabaseType() : name;
  652 + for (DatabaseDomain domain : database.getTypes()) {
  653 + if (domain.getName().equalsIgnoreCase(databaseType)) {
  654 + dataColumn.setType(domain.getDataType());
  655 + break;
  656 + }
  657 + }
  658 + }
  659 + if (dataColumn.getType() == null) {
  660 + throw new EsiBusinessException("Tipo de dados '"+name+"' não encontrado");
  661 + }
  662 +
  663 + String databaseType = null;
  664 + boolean exists = false;
  665 + for (DatabaseDomain domain : database.getTypes()) {
  666 + if (domain.getDataType().getId().equals(dataColumn.getType().getId())) {
  667 + if (databaseType == null) {
  668 + databaseType = domain.getName();
  669 + }
  670 + if (!UtilString.isNullOrEmpty(dataColumn.getDatabaseType()) && dataColumn.getDatabaseType().equalsIgnoreCase(domain.getName())) {
  671 + exists = true;
  672 + break;
  673 + }
  674 + }
  675 + }
  676 + if (!exists) {
  677 + dataColumn.setDatabaseType(databaseType);
  678 + }
  679 +
  680 + if (UtilString.isNullOrEmpty(dataColumn.getDatabaseType())) {
  681 + throw new EsiBusinessException("Tipo de dados '"+name+"' não encontrado no BD");
  682 + }
644 } 683 }
645 for (Relationship relationship: sourceObject.getRelationships()) { 684 for (Relationship relationship: sourceObject.getRelationships()) {
646 relationship.setId(null); 685 relationship.setId(null);
cit-esi-api/src/main/java/br/com/centralit/esi/api/pack/service/impl/PackServiceImpl.java
@@ -132,44 +132,49 @@ public class PackServiceImpl extends GenericServiceImpl<Pack, Long> implements P @@ -132,44 +132,49 @@ public class PackServiceImpl extends GenericServiceImpl<Pack, Long> implements P
132 132
133 @Override 133 @Override
134 public Pack importPackage(Pack pack) { 134 public Pack importPackage(Pack pack) {
135 - pack.setElements(new ArrayList<PackElement>());  
136 - if (pack.getDslrs() != null) {  
137 - for (DroolsDSLR dslr : pack.getDslrs()) {  
138 - dslr = droolsDSLRService.save(dslr, pack.getReplaceElement());  
139 - pack.getElements().add(new PackElement(pack, PackElementTypeEnum.DSLR, dslr.getId(), dslr.getName(), dslr.getName())); 135 + try {
  136 + pack.setElements(new ArrayList<PackElement>());
  137 + if (pack.getDslrs() != null) {
  138 + for (DroolsDSLR dslr : pack.getDslrs()) {
  139 + dslr = droolsDSLRService.save(dslr, pack.getReplaceElement());
  140 + pack.getElements().add(new PackElement(pack, PackElementTypeEnum.DSLR, dslr.getId(), dslr.getName(), dslr.getName()));
  141 + }
140 } 142 }
141 - }  
142 - if (pack.getBusinessRules() != null) {  
143 - for (BusinessRuleVersion businessRule : pack.getBusinessRules()) {  
144 - businessRule = (BusinessRuleVersion) businessRuleVersionService.save(businessRule, pack.getReplaceElement());  
145 - pack.getElements().add(new PackElement(pack, PackElementTypeEnum.BUSINESS_RULE, businessRule.getFlow().getId(), businessRule.getFlow().getName(), businessRule.getFlow().getDescription())); 143 + if (pack.getBusinessRules() != null) {
  144 + for (BusinessRuleVersion businessRule : pack.getBusinessRules()) {
  145 + businessRule = (BusinessRuleVersion) businessRuleVersionService.save(businessRule, pack.getReplaceElement());
  146 + pack.getElements().add(new PackElement(pack, PackElementTypeEnum.BUSINESS_RULE, businessRule.getFlow().getId(), businessRule.getFlow().getName(), businessRule.getFlow().getDescription()));
  147 + }
146 } 148 }
147 - }  
148 - if (pack.getFlows() != null) {  
149 - for (FlowVersion flowVersion : pack.getFlows()) {  
150 - flowVersion = flowVersionService.save(flowVersion, pack.getReplaceElement());  
151 - pack.getElements().add(new PackElement(pack, PackElementTypeEnum.FLOW, flowVersion.getFlow().getId(), flowVersion.getFlow().getName(), flowVersion.getFlow().getDescription())); 149 + if (pack.getFlows() != null) {
  150 + for (FlowVersion flowVersion : pack.getFlows()) {
  151 + flowVersion = flowVersionService.save(flowVersion, pack.getReplaceElement());
  152 + pack.getElements().add(new PackElement(pack, PackElementTypeEnum.FLOW, flowVersion.getFlow().getId(), flowVersion.getFlow().getName(), flowVersion.getFlow().getDescription()));
  153 + }
152 } 154 }
153 - }  
154 - if (pack.getDataObjects() != null) {  
155 - dataObjectService.importDataObjects(pack);  
156 - }  
157 - if (pack.getForms() != null) {  
158 - for (FormVersion form : pack.getForms()) {  
159 - form = (FormVersion) formVersionService.save(form, pack.getReplaceElement());  
160 - pack.getElements().add(new PackElement(pack, PackElementTypeEnum.FORM, form.getResource().getId(), form.getResource().getName(), form.getResource().getDescription())); 155 + if (pack.getDataObjects() != null) {
  156 + dataObjectService.importDataObjects(pack);
161 } 157 }
162 - }  
163 - if (pack.getBusinessProcess() != null) {  
164 - for (BusinessProcess businessProcess : pack.getBusinessProcess()) {  
165 - businessProcess = businessProcessService.save(businessProcess, pack.getReplaceElement());  
166 - pack.getElements().add(new PackElement(pack, PackElementTypeEnum.BUSINESS_PROCESS, businessProcess.getId(), businessProcess.getName(), businessProcess.getDescription())); 158 + if (pack.getForms() != null) {
  159 + for (FormVersion form : pack.getForms()) {
  160 + form = (FormVersion) formVersionService.save(form, pack.getReplaceElement());
  161 + pack.getElements().add(new PackElement(pack, PackElementTypeEnum.FORM, form.getResource().getId(), form.getResource().getName(), form.getResource().getDescription()));
  162 + }
167 } 163 }
168 - }  
169 - if (pack.isNew()) {  
170 - return this.save(pack);  
171 - }else{  
172 - return this.merge(pack); 164 + if (pack.getBusinessProcess() != null) {
  165 + for (BusinessProcess businessProcess : pack.getBusinessProcess()) {
  166 + businessProcess = businessProcessService.save(businessProcess, pack.getReplaceElement());
  167 + pack.getElements().add(new PackElement(pack, PackElementTypeEnum.BUSINESS_PROCESS, businessProcess.getId(), businessProcess.getName(), businessProcess.getDescription()));
  168 + }
  169 + }
  170 + if (pack.isNew()) {
  171 + return this.save(pack);
  172 + }else{
  173 + return this.merge(pack);
  174 + }
  175 + } catch (Exception e) {
  176 + e.printStackTrace();
  177 + throw e;
173 } 178 }
174 } 179 }
175 180
cit-esi-web/src/main/java/br/com/centralit/listener/StartupListenerEsi.java
@@ -333,156 +333,108 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen @@ -333,156 +333,108 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen
333 FormWidget widgetTextArea = formWidgetService.findByName("text-area"); 333 FormWidget widgetTextArea = formWidgetService.findByName("text-area");
334 334
335 // name, description, javaClass, allowSize, allowGeneratedValue, allowPrecision, allowAutoIncrement, width, widget 335 // name, description, javaClass, allowSize, allowGeneratedValue, allowPrecision, allowAutoIncrement, width, widget
336 -  
337 - DataType dataType = new DataType("bigint", "bigint (inteiro longo)", JavaClassEnum.BIG_INTEGER, false, true, false, true, 2, widgetInteger);  
338 - dataType = dataTypeService.save(dataType);  
339 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
340 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType));  
341 - databaseDomainService.save(new DatabaseDomain(postgres, dataType));  
342 -  
343 - dataType = new DataType("int8", "int8 (inteiro longo)", JavaClassEnum.BIG_INTEGER, false, true, false, true, 2, widgetInteger); 336 + DataType dataType = new DataType("bigint", "Big integer", JavaClassEnum.BIG_INTEGER, false, true, false, true, 2, widgetInteger);
344 dataType = dataTypeService.save(dataType); 337 dataType = dataTypeService.save(dataType);
345 - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); 338 + databaseDomainService.save(new DatabaseDomain(sqlServer, "bigint", dataType));
  339 + databaseDomainService.save(new DatabaseDomain(mySQL, "bigint", dataType));
  340 + databaseDomainService.save(new DatabaseDomain(postgres, "bigint", dataType));
  341 + databaseDomainService.save(new DatabaseDomain(postgres, "int8", dataType));
  342 + databaseDomainService.save(new DatabaseDomain(oracle, "integer", dataType));
346 343
347 - dataType = new DataType("smallint", "smallint (inteiro)", JavaClassEnum.INTEGER, false, true, false, true, 2, widgetInteger); 344 + dataType = new DataType("int", "Small integer", JavaClassEnum.INTEGER, false, true, false, true, 2, widgetInteger);
348 dataType = dataTypeService.save(dataType); 345 dataType = dataTypeService.save(dataType);
349 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
350 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType));  
351 - databaseDomainService.save(new DatabaseDomain(postgres, dataType));  
352 -  
353 - dataType = new DataType("int", "int (inteiro)", JavaClassEnum.INTEGER, false, true, false, true, 2, widgetInteger); 346 + databaseDomainService.save(new DatabaseDomain(sqlServer, "int", dataType));
  347 + databaseDomainService.save(new DatabaseDomain(sqlServer, "smallint", dataType));
  348 + databaseDomainService.save(new DatabaseDomain(mySQL, "smallint", dataType));
  349 + databaseDomainService.save(new DatabaseDomain(mySQL, "int", dataType));
  350 + databaseDomainService.save(new DatabaseDomain(postgres, "smallint", dataType));
  351 + databaseDomainService.save(new DatabaseDomain(oracle, "integer", dataType));
  352 +
  353 + dataType = new DataType("integer", "Integer", JavaClassEnum.INTEGER, false, true, false, true, 2, widgetInteger);
354 dataType = dataTypeService.save(dataType); 354 dataType = dataTypeService.save(dataType);
355 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
356 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); 355 + databaseDomainService.save(new DatabaseDomain(sqlServer, "integer", dataType));
  356 + databaseDomainService.save(new DatabaseDomain(mySQL, "int", dataType));
  357 + databaseDomainService.save(new DatabaseDomain(postgres, "integer", dataType));
  358 + databaseDomainService.save(new DatabaseDomain(oracle, "integer", dataType));
357 359
358 - dataType = new DataType("integer", "integer (inteiro)", JavaClassEnum.INTEGER, false, true, false, true, 2, widgetInteger); 360 + dataType = new DataType("boolean", "Boolean", JavaClassEnum.BOOLEAN, false, false, false, false, 2, widgetCheckbox);
359 dataType = dataTypeService.save(dataType); 361 dataType = dataTypeService.save(dataType);
360 - databaseDomainService.save(new DatabaseDomain(postgres, dataType));  
361 - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); 362 + databaseDomainService.save(new DatabaseDomain(sqlServer, "bit", dataType));
  363 + databaseDomainService.save(new DatabaseDomain(mySQL, "bit", dataType));
  364 + databaseDomainService.save(new DatabaseDomain(postgres, "bool", dataType));
  365 + databaseDomainService.save(new DatabaseDomain(oracle, "integer", dataType));
362 366
363 - dataType = new DataType("bit", "bit (booleano)", JavaClassEnum.BOOLEAN, false, false, false, false, 2, widgetCheckbox); 367 + dataType = new DataType("bigdecimal", "Big decimal", JavaClassEnum.BIG_DECIMAL, true, false, true, false, 2, widgetDecimal);
364 dataType = dataTypeService.save(dataType); 368 dataType = dataTypeService.save(dataType);
365 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
366 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType));  
367 -  
368 - dataType = new DataType("numeric", "numeric (decimal)", JavaClassEnum.BIG_DECIMAL, true, false, true, false, 2, widgetDecimal); 369 + databaseDomainService.save(new DatabaseDomain(sqlServer, "float", dataType));
  370 + databaseDomainService.save(new DatabaseDomain(sqlServer, "numeric", dataType));
  371 + databaseDomainService.save(new DatabaseDomain(sqlServer, "decimal", dataType));
  372 + databaseDomainService.save(new DatabaseDomain(mySQL, "float", dataType));
  373 + databaseDomainService.save(new DatabaseDomain(mySQL, "numeric", dataType));
  374 + databaseDomainService.save(new DatabaseDomain(mySQL, "decimal", dataType));
  375 + databaseDomainService.save(new DatabaseDomain(postgres, "numeric", dataType));
  376 + databaseDomainService.save(new DatabaseDomain(oracle, "number", dataType));
  377 +
  378 + dataType = new DataType("float", "Float", JavaClassEnum.FLOAT, true, false, true, false, 2, widgetDecimal);
369 dataType = dataTypeService.save(dataType); 379 dataType = dataTypeService.save(dataType);
370 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
371 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType));  
372 - databaseDomainService.save(new DatabaseDomain(postgres, dataType));  
373 -  
374 - dataType = new DataType("number", "number (decimal)", JavaClassEnum.BIG_DECIMAL, true, false, true, false, 2, widgetDecimal); 380 + databaseDomainService.save(new DatabaseDomain(sqlServer, "float", dataType));
  381 + databaseDomainService.save(new DatabaseDomain(sqlServer,"real", dataType));
  382 + databaseDomainService.save(new DatabaseDomain(mySQL, "double", dataType));
  383 + databaseDomainService.save(new DatabaseDomain(postgres, "numeric", dataType));
  384 + databaseDomainService.save(new DatabaseDomain(postgres,"real", dataType));
  385 + databaseDomainService.save(new DatabaseDomain(oracle, "number", dataType));
  386 +
  387 + dataType = new DataType("currency", "Currency", JavaClassEnum.CURRENCY, false, false, false, false, 2, widgetMoney);
375 dataType = dataTypeService.save(dataType); 388 dataType = dataTypeService.save(dataType);
376 - databaseDomainService.save(new DatabaseDomain(oracle, dataType)); 389 + databaseDomainService.save(new DatabaseDomain(sqlServer, "money", dataType));
  390 + databaseDomainService.save(new DatabaseDomain(sqlServer, "smallmoney", dataType));
  391 + databaseDomainService.save(new DatabaseDomain(mySQL, "float", dataType));
  392 + databaseDomainService.save(new DatabaseDomain(postgres, "money", dataType));
  393 + databaseDomainService.save(new DatabaseDomain(oracle, "number", dataType));
377 394
378 - dataType = new DataType("decimal", "decimal", JavaClassEnum.BIG_DECIMAL, true, false, true, false, 2, widgetDecimal); 395 + dataType = new DataType("date", "Date", JavaClassEnum.DATE, false, false, false, false, 2, widgetDate);
379 dataType = dataTypeService.save(dataType); 396 dataType = dataTypeService.save(dataType);
380 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
381 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType)); 397 + databaseDomainService.save(new DatabaseDomain(sqlServer, "datetime", dataType));
  398 + databaseDomainService.save(new DatabaseDomain(sqlServer, "smalldatetime", dataType));
  399 + databaseDomainService.save(new DatabaseDomain(mySQL, "datetime", dataType));
  400 + databaseDomainService.save(new DatabaseDomain(postgres, "date", dataType));
  401 + databaseDomainService.save(new DatabaseDomain(oracle, "date", dataType));
382 402
383 - dataType = new DataType("float", "float (decimal)", JavaClassEnum.FLOAT, true, false, true, false, 2, widgetDecimal); 403 + dataType = new DataType("datetime", "Datetime", JavaClassEnum.DATE, false, false, false, false, 2, widgetDate);
384 dataType = dataTypeService.save(dataType); 404 dataType = dataTypeService.save(dataType);
385 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
386 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType));  
387 -  
388 - dataType = new DataType("double", "double (decimal)", JavaClassEnum.DOUBLE, true, false, true, false, 2, widgetDecimal);  
389 - dataType = dataTypeService.save(dataType);  
390 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType));  
391 -  
392 - dataType = new DataType("real", "real (decimal)", JavaClassEnum.FLOAT, true, false, true, false, 2, widgetDecimal);  
393 - dataType = dataTypeService.save(dataType);  
394 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
395 - databaseDomainService.save(new DatabaseDomain(postgres, dataType)); 405 + databaseDomainService.save(new DatabaseDomain(sqlServer, "datetime", dataType));
  406 + databaseDomainService.save(new DatabaseDomain(mySQL, "timestamp", dataType));
  407 + databaseDomainService.save(new DatabaseDomain(postgres, "timestamp", dataType));
  408 + databaseDomainService.save(new DatabaseDomain(oracle, "timestamp", dataType));
396 409
397 - dataType = new DataType("smallmoney", "smallmoney (currency)", JavaClassEnum.CURRENCY, false, false, false, false, 2, widgetMoney); 410 + dataType = new DataType("char", "Character", JavaClassEnum.STRING, true, false, false, false, 4, widgetText);
398 dataType = dataTypeService.save(dataType); 411 dataType = dataTypeService.save(dataType);
399 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
400 -  
401 - dataType = new DataType("money", "money (currency)", JavaClassEnum.CURRENCY, false, false, false, false, 2, widgetMoney); 412 + databaseDomainService.save(new DatabaseDomain(sqlServer, "char", dataType));
  413 + databaseDomainService.save(new DatabaseDomain(sqlServer, "nchar", dataType));
  414 + databaseDomainService.save(new DatabaseDomain(mySQL, "char", dataType));
  415 + databaseDomainService.save(new DatabaseDomain(postgres, "character", dataType));
  416 + databaseDomainService.save(new DatabaseDomain(oracle, "char", dataType));
  417 + databaseDomainService.save(new DatabaseDomain(oracle, "nchar", dataType));
  418 +
  419 + dataType = new DataType("varchar", "Text", JavaClassEnum.STRING, true, false, false, false, 4, widgetText);
402 dataType = dataTypeService.save(dataType); 420 dataType = dataTypeService.save(dataType);
403 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
404 - databaseDomainService.save(new DatabaseDomain(postgres, dataType));  
405 -  
406 - dataType = new DataType("smalldatetime", "smalldatetime (data)", JavaClassEnum.DATE, false, false, false, false, 2, widgetDate); 421 + databaseDomainService.save(new DatabaseDomain(sqlServer, "varchar", dataType));
  422 + databaseDomainService.save(new DatabaseDomain(sqlServer, "nvarchar", dataType));
  423 + databaseDomainService.save(new DatabaseDomain(sqlServer, "varchar(max)", dataType));
  424 + databaseDomainService.save(new DatabaseDomain(mySQL, "varchar", dataType));
  425 + databaseDomainService.save(new DatabaseDomain(postgres, "varchar", dataType));
  426 + databaseDomainService.save(new DatabaseDomain(oracle, "varchar2", dataType));
  427 + databaseDomainService.save(new DatabaseDomain(oracle, "nvarchar2", dataType));
  428 + databaseDomainService.save(new DatabaseDomain(oracle, "varchar", dataType));
  429 +
  430 + dataType = new DataType("text", "Long text", JavaClassEnum.STRING, true, false, false, false, 6, widgetTextArea);
407 dataType = dataTypeService.save(dataType); 431 dataType = dataTypeService.save(dataType);
408 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
409 -  
410 - dataType = new DataType("date", "date (data)", JavaClassEnum.DATE, false, false, false, false, 2, widgetDate);  
411 - dataType = dataTypeService.save(dataType);  
412 - databaseDomainService.save(new DatabaseDomain(postgres, dataType));  
413 - databaseDomainService.save(new DatabaseDomain(oracle, dataType));  
414 -  
415 - dataType = new DataType("datetime", "datetime (data)", JavaClassEnum.DATE, false, false, false, false, 2, widgetDate);  
416 - dataType = dataTypeService.save(dataType);  
417 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
418 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType));  
419 -  
420 - dataType = new DataType("timestamp", "timestamp (data e hora)", JavaClassEnum.DATE, false, false, false, false, 2, widgetDate);  
421 - dataType = dataTypeService.save(dataType);  
422 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType));  
423 - databaseDomainService.save(new DatabaseDomain(postgres, dataType));  
424 - databaseDomainService.save(new DatabaseDomain(oracle, dataType));  
425 -  
426 - dataType = new DataType("char", "char (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText);  
427 - dataType = dataTypeService.save(dataType);  
428 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
429 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType));  
430 - databaseDomainService.save(new DatabaseDomain(oracle, dataType));  
431 -  
432 - dataType = new DataType("character", "character (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText);  
433 - dataType = dataTypeService.save(dataType);  
434 - databaseDomainService.save(new DatabaseDomain(postgres, dataType));  
435 -  
436 - dataType = new DataType("nchar", "nchar (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText);  
437 - dataType = dataTypeService.save(dataType);  
438 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
439 - databaseDomainService.save(new DatabaseDomain(oracle, dataType));  
440 -  
441 - dataType = new DataType("varchar", "varchar (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText);  
442 - dataType = dataTypeService.save(dataType);  
443 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
444 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType));  
445 - databaseDomainService.save(new DatabaseDomain(postgres, dataType));  
446 - databaseDomainService.save(new DatabaseDomain(oracle, dataType));  
447 -  
448 - dataType = new DataType("varchar(max)", "varchar max (texto)", JavaClassEnum.STRING, true, false, false, false, 6, widgetTextArea);  
449 - dataType = dataTypeService.save(dataType);  
450 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
451 -  
452 - dataType = new DataType("varchar2", "varchar2 (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText);  
453 - dataType = dataTypeService.save(dataType);  
454 - databaseDomainService.save(new DatabaseDomain(oracle, dataType));  
455 -  
456 - dataType = new DataType("nvarchar2", "nvarchar2 (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText);  
457 - dataType = dataTypeService.save(dataType);  
458 - databaseDomainService.save(new DatabaseDomain(oracle, dataType));  
459 -  
460 - dataType = new DataType("character varying", "character varying (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText);  
461 - dataType = dataTypeService.save(dataType);  
462 - databaseDomainService.save(new DatabaseDomain(postgres, dataType));  
463 -  
464 - dataType = new DataType("nvarchar", "nvarchar (texto)", JavaClassEnum.STRING, true, false, false, false, 4, widgetText);  
465 - dataType = dataTypeService.save(dataType);  
466 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
467 -  
468 - dataType = new DataType("text", "text (texto longo)", JavaClassEnum.STRING, true, false, false, false, 6, widgetTextArea);  
469 - dataType = dataTypeService.save(dataType);  
470 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
471 - databaseDomainService.save(new DatabaseDomain(mySQL, dataType));  
472 - databaseDomainService.save(new DatabaseDomain(postgres, dataType));  
473 -  
474 - dataType = new DataType("ntext", "ntext (texto longo)", JavaClassEnum.STRING, true, false, false, false, 6, widgetTextArea);  
475 - dataType = dataTypeService.save(dataType);  
476 - databaseDomainService.save(new DatabaseDomain(sqlServer, dataType));  
477 -  
478 - dataType = new DataType("clob", "clob (texto longo)", JavaClassEnum.STRING, true, false, false, false, 6, widgetTextArea);  
479 - dataType = dataTypeService.save(dataType);  
480 - databaseDomainService.save(new DatabaseDomain(oracle, dataType));  
481 -  
482 - dataType = new DataType("nclob", "nclob (texto longo)", JavaClassEnum.STRING, true, false, false, false, 6, widgetTextArea);  
483 - dataType = dataTypeService.save(dataType);  
484 - databaseDomainService.save(new DatabaseDomain(oracle, dataType));  
485 - 432 + databaseDomainService.save(new DatabaseDomain(sqlServer, "text", dataType));
  433 + databaseDomainService.save(new DatabaseDomain(sqlServer, "ntext", dataType));
  434 + databaseDomainService.save(new DatabaseDomain(mySQL, "text", dataType));
  435 + databaseDomainService.save(new DatabaseDomain(postgres, "text", dataType));
  436 + databaseDomainService.save(new DatabaseDomain(oracle, "clob", dataType));
  437 + databaseDomainService.save(new DatabaseDomain(oracle, "nclob", dataType));
486 } 438 }
487 439
488 private void createDatabases() { 440 private void createDatabases() {
@@ -2163,6 +2115,7 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen @@ -2163,6 +2115,7 @@ public class StartupListenerEsi extends UtilStartup implements ApplicationListen
2163 internacionalizacaoList.add(new Internacionalizacao("ESI.OBJETO_DESTINO", "Objeto JSON que será atualizado", dominio, modulo)); 2115 internacionalizacaoList.add(new Internacionalizacao("ESI.OBJETO_DESTINO", "Objeto JSON que será atualizado", dominio, modulo));
2164 internacionalizacaoList.add(new Internacionalizacao("ESI.CADASTRO", "Cadastro", dominio, modulo)); 2116 internacionalizacaoList.add(new Internacionalizacao("ESI.CADASTRO", "Cadastro", dominio, modulo));
2165 internacionalizacaoList.add(new Internacionalizacao("ESI.NOME_ATRIBUTO", "Nome para atributo de objeto", dominio, modulo)); 2117 internacionalizacaoList.add(new Internacionalizacao("ESI.NOME_ATRIBUTO", "Nome para atributo de objeto", dominio, modulo));
  2118 + internacionalizacaoList.add(new Internacionalizacao("ESI.TIPO_BD", "Tipo no BD", dominio, modulo));
2166 internacionalizacaoList.add(new Internacionalizacao("ESI.TERMINO", "Término", dominio, modulo)); 2119 internacionalizacaoList.add(new Internacionalizacao("ESI.TERMINO", "Término", dominio, modulo));
2167 internacionalizacaoList.add(new Internacionalizacao("ESI.MOVER_ESQUERDA", "Mover para esquerda", dominio, modulo)); 2120 internacionalizacaoList.add(new Internacionalizacao("ESI.MOVER_ESQUERDA", "Mover para esquerda", dominio, modulo));
2168 internacionalizacaoList.add(new Internacionalizacao("ESI.CONEXAO_BANCO", "Conexão de Banco", dominio, modulo)); 2121 internacionalizacaoList.add(new Internacionalizacao("ESI.CONEXAO_BANCO", "Conexão de Banco", dominio, modulo));
cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/DataObjectController.js
@@ -73,6 +73,11 @@ citApp.controller(&#39;DataObjectController&#39;, [&quot;$scope&quot;, &quot;FlowRepository&quot;, &quot;DataObje @@ -73,6 +73,11 @@ citApp.controller(&#39;DataObjectController&#39;, [&quot;$scope&quot;, &quot;FlowRepository&quot;, &quot;DataObje
73 }); 73 });
74 }); 74 });
75 75
  76 + $scope.dataTypes = [];
  77 + DataTypeRepository.getList().then(function(result) {
  78 + $scope.dataTypes = result;
  79 + });
  80 +
76 // Limpa formulário para novo cadastro 81 // Limpa formulário para novo cadastro
77 $scope.resetForm = function() { 82 $scope.resetForm = function() {
78 $scope.columnChecked = undefined; 83 $scope.columnChecked = undefined;
@@ -170,7 +175,7 @@ citApp.controller(&#39;DataObjectController&#39;, [&quot;$scope&quot;, &quot;FlowRepository&quot;, &quot;DataObje @@ -170,7 +175,7 @@ citApp.controller(&#39;DataObjectController&#39;, [&quot;$scope&quot;, &quot;FlowRepository&quot;, &quot;DataObje
170 175
171 DataObjectRepository.get(dataObject.id).then(function(result) { 176 DataObjectRepository.get(dataObject.id).then(function(result) {
172 $scope.dataObject = result.originalElement; 177 $scope.dataObject = result.originalElement;
173 - $scope.getDataTypes($scope.dataObject.dataSource); 178 + $scope.getDatabaseDomains($scope.dataObject.dataSource);
174 179
175 $scope.restoreRelationships(); 180 $scope.restoreRelationships();
176 181
@@ -221,19 +226,17 @@ citApp.controller(&#39;DataObjectController&#39;, [&quot;$scope&quot;, &quot;FlowRepository&quot;, &quot;DataObje @@ -221,19 +226,17 @@ citApp.controller(&#39;DataObjectController&#39;, [&quot;$scope&quot;, &quot;FlowRepository&quot;, &quot;DataObje
221 $scope.dataObject.dataSource = null; 226 $scope.dataObject.dataSource = null;
222 }; 227 };
223 228
224 - $scope.getDataTypes = function(dataSource) {  
225 - $scope.dataTypes = []; 229 + $scope.getDatabaseDomains = function(dataSource) {
  230 + $scope.databaseDomains = [];
226 DataSourceRepository.get(dataSource.id).then(function(result) { 231 DataSourceRepository.get(dataSource.id).then(function(result) {
227 - angular.forEach(result.originalElement.database.types, function(databaseDomain){  
228 - $scope.dataTypes.push(databaseDomain.dataType);  
229 - }); 232 + $scope.databaseDomains = result.database.types;
230 }); 233 });
231 }; 234 };
232 235
233 $scope.setDataSource = function (item) { 236 $scope.setDataSource = function (item) {
234 if(item && item.id) { 237 if(item && item.id) {
235 $scope.dataObject.dataSource = item; 238 $scope.dataObject.dataSource = item;
236 - $scope.getDataTypes(item); 239 + $scope.getDatabaseDomains(item);
237 } 240 }
238 }; 241 };
239 242
@@ -599,10 +602,16 @@ citApp.controller(&#39;DataObjectController&#39;, [&quot;$scope&quot;, &quot;FlowRepository&quot;, &quot;DataObje @@ -599,10 +602,16 @@ citApp.controller(&#39;DataObjectController&#39;, [&quot;$scope&quot;, &quot;FlowRepository&quot;, &quot;DataObje
599 602
600 $scope.setColumType = function(type) { 603 $scope.setColumType = function(type) {
601 angular.forEach($scope.dataTypes, function(dataType){ 604 angular.forEach($scope.dataTypes, function(dataType){
602 - if (dataType.id == type) { 605 + if (dataType.id == type.id) {
603 $scope.column.type = dataType; 606 $scope.column.type = dataType;
604 } 607 }
605 }); 608 });
  609 + $scope.column.databaseType = '';
  610 + angular.forEach($scope.databaseDomains, function(domain){
  611 + if (domain.dataType.id == type.id && $scope.column.databaseType == '') {
  612 + $scope.column.databaseType = domain.name;
  613 + }
  614 + });
606 }; 615 };
607 616
608 $scope.generateForm = function() { 617 $scope.generateForm = function() {
cit-esi-web/src/main/webapp/assets/js/angular/custom/controller/DatabaseController.js
@@ -8,31 +8,15 @@ citApp.controller(&#39;DatabaseController&#39;, [&quot;$scope&quot;, &quot;DatabaseRepository&quot;, &quot;DataTy @@ -8,31 +8,15 @@ citApp.controller(&#39;DatabaseController&#39;, [&quot;$scope&quot;, &quot;DatabaseRepository&quot;, &quot;DataTy
8 DomainRepository.getEnumeratedDomain('DatabaseTypeEnum').then(function(result) { 8 DomainRepository.getEnumeratedDomain('DatabaseTypeEnum').then(function(result) {
9 $scope.databaseTypes = result; 9 $scope.databaseTypes = result;
10 }); 10 });
11 -  
12 - var filterDataTypes = {  
13 - start : 1,  
14 - dir : 'asc',  
15 - sort : 'name',  
16 - limit : 999999,  
17 - fields: ['id', 'name']  
18 - };  
19 11
20 $scope.dataTypes = []; 12 $scope.dataTypes = [];
21 -  
22 - $scope.findDataTypes = function(){  
23 - $scope.dataTypes = [];  
24 - DataTypeRepository.getListPage(filterDataTypes).then(function(result) {  
25 - angular.forEach(result.originalElement.objects, function(dataType){  
26 - var item = {dataType: dataType};  
27 - $scope.dataTypes.push(item);  
28 - });  
29 - });  
30 - }; 13 + DataTypeRepository.getList().then(function(result) {
  14 + $scope.dataTypes = result;
  15 + });
31 16
32 // Limpa formulário para novo cadastro 17 // Limpa formulário para novo cadastro
33 $scope.resetForm = function() { 18 $scope.resetForm = function() {
34 $scope.limparDatabase(); 19 $scope.limparDatabase();
35 - $scope.findDataTypes();  
36 $scope.edit = true; 20 $scope.edit = true;
37 $timeout(function(){ 21 $timeout(function(){
38 $scope.databaseForm.$submitted = false; 22 $scope.databaseForm.$submitted = false;
@@ -98,13 +82,37 @@ citApp.controller(&#39;DatabaseController&#39;, [&quot;$scope&quot;, &quot;DatabaseRepository&quot;, &quot;DataTy @@ -98,13 +82,37 @@ citApp.controller(&#39;DatabaseController&#39;, [&quot;$scope&quot;, &quot;DatabaseRepository&quot;, &quot;DataTy
98 $scope.setLoadingGet(true); 82 $scope.setLoadingGet(true);
99 83
100 DatabaseRepository.get(database.id).then(function(result) { 84 DatabaseRepository.get(database.id).then(function(result) {
  85 + $scope.domainChecked = null;
  86 + $scope.domain = null;
101 $scope.database = result.originalElement; 87 $scope.database = result.originalElement;
102 $scope.edit = edit; 88 $scope.edit = edit;
103 - $scope.findDataTypes();  
104 89
105 $scope.setLoading(false); 90 $scope.setLoading(false);
106 }); 91 });
107 }; 92 };
108 93
  94 + $scope.checkDomain = function(index, domain) {
  95 + domain.$index = index;
  96 + $scope.domainChecked = domain;
  97 + };
  98 +
  99 + $scope.newDomain = function(){
  100 + $scope.database.types.push({});
  101 + };
109 102
  103 + $scope.removeDomain = function(){
  104 + if(!$scope.domainChecked) {
  105 + $scope.showAlert('warning', $translate.instant('MSG.SELECIONE_UM_ITEM_PARA_SER_REMOVIDO'));
  106 + return;
  107 + } else {
  108 + $scope.$openModalConfirm({
  109 + message: $translate.instant('MSG.CONFIRMA_EXCLUSAO'),
  110 + callback: function () {
  111 + $scope.$modalConfirmInstance.dismiss('cancel');
  112 + $scope.database.types.splice($scope.domainChecked.$index, 1);
  113 + }
  114 + });
  115 + }
  116 + };
  117 +
110 }]); 118 }]);
cit-esi-web/src/main/webapp/html/dataObject/dataObjectEdit.html
@@ -149,7 +149,7 @@ @@ -149,7 +149,7 @@
149 <th width="5%" class="text-center"></th> 149 <th width="5%" class="text-center"></th>
150 <th width="25%"><translate>LABEL.NOME</translate></th> 150 <th width="25%"><translate>LABEL.NOME</translate></th>
151 <th width="40%"><translate>LABEL.DESCRICAO</translate></th> 151 <th width="40%"><translate>LABEL.DESCRICAO</translate></th>
152 - <th width="20%"><translate>LABEL.TIPO</translate></th> 152 + <th width="20%"><translate>ESI.TIPO_BD</translate></th>
153 </tr> 153 </tr>
154 </thead> 154 </thead>
155 <tbody> 155 <tbody>
@@ -164,7 +164,7 @@ @@ -164,7 +164,7 @@
164 </td> 164 </td>
165 <td class="vertical-middle">{{theColumn.name}}</td> 165 <td class="vertical-middle">{{theColumn.name}}</td>
166 <td class="vertical-middle">{{theColumn.description}}</td> 166 <td class="vertical-middle">{{theColumn.description}}</td>
167 - <td class="vertical-middle">{{theColumn.type.name}}</td> 167 + <td class="vertical-middle">{{theColumn.databaseType}}</td>
168 </tr> 168 </tr>
169 <tr ng-hide="dataObject.columns.length > 0"> 169 <tr ng-hide="dataObject.columns.length > 0">
170 <td colspan="5"><translate>LABEL.TABELA_VAZIA</translate></td> 170 <td colspan="5"><translate>LABEL.TABELA_VAZIA</translate></td>
cit-esi-web/src/main/webapp/html/dataObject/dialogDataColumn.html
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 <legend><translate>ESI.COLUNA</translate></legend> 21 <legend><translate>ESI.COLUNA</translate></legend>
22 22
23 <div class='row'> 23 <div class='row'>
24 - <div class="col-sm-5"> 24 + <div class="col-sm-4">
25 <label-input-identifier ng-label="ESI.NOME_BD" ng-type="text" ng-id="column.name" ng-obrigatorio="true" 25 <label-input-identifier ng-label="ESI.NOME_BD" ng-type="text" ng-id="column.name" ng-obrigatorio="true"
26 ng-disabled="!edit" ng-model="column.name" ng-custom-maxlength="100" form="formDataColumn" 26 ng-disabled="!edit" ng-model="column.name" ng-custom-maxlength="100" form="formDataColumn"
27 ng-evento-blur="verifyAttributeName()"/> 27 ng-evento-blur="verifyAttributeName()"/>
@@ -30,15 +30,19 @@ @@ -30,15 +30,19 @@
30 <label-input-identifier ng-label="ESI.NOME_ATRIBUTO" ng-type="text" ng-id="column.attributeName" ng-obrigatorio="true" 30 <label-input-identifier ng-label="ESI.NOME_ATRIBUTO" ng-type="text" ng-id="column.attributeName" ng-obrigatorio="true"
31 ng-disabled="!edit" ng-model="column.attributeName" ng-custom-maxlength="100" form="formDataColumn"/> 31 ng-disabled="!edit" ng-model="column.attributeName" ng-custom-maxlength="100" form="formDataColumn"/>
32 </div> 32 </div>
33 - <div class="col-sm-3">  
34 - <label-select ng-id="column.type" ng-label="LABEL.TIPO" ng-model="column.type.id" ng-obrigatorio='true' form="formDataColumn"  
35 - ng-list="dataTypes" ng-custom-options="dataType.id as dataType.description for dataType" ng-custom-change="setColumType(model)"> 33 + <div class="col-sm-2">
  34 + <label-select ng-id="column.type" ng-label="LABEL.TIPO" ng-model="column.type" ng-obrigatorio='true' form="formDataColumn" track-by="track by dataType.id"
  35 + ng-list="dataTypes" ng-custom-options="dataType.originalElement as dataType.description for dataType" ng-custom-change="setColumType(model)">
36 </label-select> 36 </label-select>
37 - </div> 37 + </div>
  38 + <div class="col-sm-2">
  39 + <label-input ng-label="ESI.TIPO_BD" ng-type="text" ng-id="column.databaseType" ng-obrigatorio="true"
  40 + ng-disabled="!edit" ng-model="column.databaseType" ng-custom-maxlength="100" form="formDataColumn"/>
  41 + </div>
38 </div> 42 </div>
39 43
40 <div class='row'> 44 <div class='row'>
41 - <div class="col-sm-5"> 45 + <div class="col-sm-4">
42 <label-input ng-label="ESI.LABEL" ng-type="text" ng-id="column.description" ng-obrigatorio="true" 46 <label-input ng-label="ESI.LABEL" ng-type="text" ng-id="column.description" ng-obrigatorio="true"
43 ng-disabled="!edit" ng-model="column.description" ng-custom-maxlength="255" form="formDataColumn"/> 47 ng-disabled="!edit" ng-model="column.description" ng-custom-maxlength="255" form="formDataColumn"/>
44 </div> 48 </div>
cit-esi-web/src/main/webapp/html/database/databaseEdit.html
@@ -47,7 +47,7 @@ @@ -47,7 +47,7 @@
47 47
48 <fieldset> 48 <fieldset>
49 49
50 - <legend><translate>ESI.DADOS</translate></legend> 50 + <legend><translate>ESI.ABA.IDENTIFICACAO</translate></legend>
51 51
52 <div class="row"> 52 <div class="row">
53 <div class="col-md-4"> 53 <div class="col-md-4">
@@ -62,20 +62,53 @@ @@ -62,20 +62,53 @@
62 </div><!-- .col --> 62 </div><!-- .col -->
63 </div><!-- .row --> 63 </div><!-- .row -->
64 64
65 - <div class="row">  
66 - <div class="col-sm-12">  
67 - <div class="form-group">  
68 - <label class="control-label"><translate>ESI.TIPOS_DADOS</translate></label>  
69 -  
70 - <ui-select multiple ng-model="$parent.database.types" theme="select2" ng-disabled="!edit" style="min-width: 100%;">  
71 - <ui-select-match placeholder="Selecione...">{{$item.dataType.name}}</ui-select-match>  
72 - <ui-select-choices repeat="databaseDomain in dataTypes | filter:$select.search">  
73 - {{databaseDomain.dataType.name}}  
74 - </ui-select-choices>  
75 - </ui-select>  
76 - </div><!-- .form-group -->  
77 - </div><!-- .col -->  
78 - </div><!-- .row --> 65 + <fieldset>
  66 + <legend><translate>ESI.TIPOS_DADOS</translate></legend>
  67 +
  68 + <div class='row'>
  69 + <div class='col-sm-8'>
  70 + <div class="panel panel-default">
  71 + <div class="panel-heading clearfix">
  72 + <button class="btn btn-clear" ng-click="newDomain()" type="button" >
  73 + <i class="fa fa-plus-circle yellow-dark"></i>
  74 + <translate>LABEL.ADICIONAR</translate>
  75 + </button>
  76 +
  77 + <button class="btn btn-clear" ng-click="removeDomain()" ng-disabled="!domainChecked" type="button" >
  78 + <i class="fa fa-close red"></i>
  79 + <translate>LABEL.REMOVER</translate>
  80 + </button>
  81 + </div><!-- .panel-heading -->
  82 +
  83 + <table class="table table-striped table-bordered table-hover">
  84 + <thead>
  85 + <tr>
  86 + <th width="5%" class="text-center"></th>
  87 + <th width="50%"><translate>LABEL.TIPO</translate></th>
  88 + <th width="40%"><translate>ESI.TIPO_BD</translate></th>
  89 + </tr>
  90 + </thead>
  91 + <tbody>
  92 + <tr ng-repeat="databaseDomain in database.types" >
  93 + <td class="text-center vertical-middle">
  94 + <input type="radio" name="domainChecked" ng-value="domain" ng-disabled="!edit"
  95 + ng-model="domainChecked" ng-click="checkDomain($index, databaseDomain)" />
  96 + </td>
  97 + <td class="vertical-middle">
  98 + <label-select ng-id="databaseDomain.dataType" ng-model="databaseDomain.dataType" ng-obrigatorio='true' track-by="track by dataType.id"
  99 + ng-list="dataTypes" ng-custom-options="dataType.originalElement as dataType.description for dataType">
  100 + </label-select>
  101 + </td>
  102 + <td class="vertical-middle">
  103 + <label-input ng-type="text" ng-id="databaseDomain.name" ng-obrigatorio="true"
  104 + ng-disabled="!edit" ng-model="databaseDomain.name" ng-custom-maxlength="100"/>
  105 + </td>
  106 + </tr>
  107 + </table>
  108 + </div><!-- .panel -->
  109 + </div><!-- .col -->
  110 + </div><!-- .row -->
  111 + </fieldset>
79 112
80 </form> 113 </form>
81 </div><!-- .page-content --> 114 </div><!-- .page-content -->