Compare commits

...

1 Commits

Author SHA1 Message Date
hwang
950cb7e5f3 bugfix(TUP-23809):[Studio] changes in column order are not saved (no
propagate changes dialog)
2019-07-12 19:32:08 +08:00
3 changed files with 14 additions and 7 deletions

View File

@@ -54,6 +54,8 @@ public interface IMetadataTable {
public List<IMetadataColumn> getListColumns();
public List<IMetadataColumn> getListColumns(boolean withUnselected);
public List<IMetadataColumn> getListColumns(boolean withUnselected, boolean isCopyTable);
public void setListColumns(List<IMetadataColumn> listColumns);

View File

@@ -130,9 +130,9 @@ public class MetadataTable implements IMetadataTable, Cloneable {
return getListColumns(false);
// return this.listColumns;
}
@Override
public synchronized List<IMetadataColumn> getListColumns(boolean withUnselected) {
public synchronized List<IMetadataColumn> getListColumns(boolean withUnselected, boolean isCopyTable) {
Iterator<IMetadataColumn> it = this.listColumns.iterator();
while (it.hasNext()) {
IMetadataColumn column = it.next();
@@ -153,7 +153,7 @@ public class MetadataTable implements IMetadataTable, Cloneable {
List<IMetadataColumn> temp = new ArrayList<IMetadataColumn>();
temp.addAll(this.listColumns);
temp.addAll(this.unusedColumns);
if (originalColumns != null) {
if (originalColumns != null && isRepository && !isCopyTable) {
Collections.sort(temp, new Comparator<IMetadataColumn>() {
@Override
@@ -169,6 +169,11 @@ public class MetadataTable implements IMetadataTable, Cloneable {
return this.listColumns;
}
@Override
public synchronized List<IMetadataColumn> getListColumns(boolean withUnselected) {
return getListColumns(withUnselected, false);
}
@Override
public boolean isDynamicSchema() {
return getDynamicColumn() != null;
@@ -252,8 +257,8 @@ public class MetadataTable implements IMetadataTable, Cloneable {
if (!(input instanceof IMetadataTable)) {
return false;
}
List<IMetadataColumn> thisColumnListWithUnselected = this.getListColumns(true);
List<IMetadataColumn> inputColumnListWithUnselected = input.getListColumns(true);
List<IMetadataColumn> thisColumnListWithUnselected = this.getListColumns(true, true);
List<IMetadataColumn> inputColumnListWithUnselected = input.getListColumns(true, true);
if (thisColumnListWithUnselected == null) {
if (inputColumnListWithUnselected != null) {
return false;

View File

@@ -595,7 +595,7 @@ public final class MetadataToolHelper {
}
List<IMetadataColumn> columnsToRemove = new ArrayList<IMetadataColumn>();
List<String> readOnlycolumns = new ArrayList<String>();
for (IMetadataColumn column : target.getListColumns(true)) {
for (IMetadataColumn column : target.getListColumns(true, true)) {
if (!column.isCustom()) {
columnsToRemove.add(column);
}
@@ -607,7 +607,7 @@ public final class MetadataToolHelper {
target.getListUnusedColumns().removeAll(columnsToRemove);
List<IMetadataColumn> columnsTAdd = new ArrayList<IMetadataColumn>();
for (IMetadataColumn column : source.getListColumns(!avoidUsedColumnsFromInput)) {
for (IMetadataColumn column : source.getListColumns(!avoidUsedColumnsFromInput, true)) {
IMetadataColumn targetColumn = target.getColumn(column.getLabel());
IMetadataColumn newTargetColumn = column.clone(withCustoms);
if (targetColumn == null) {