Browse Source

REPORT-53157 【智能联动】组件拖入时,单元格位置引用数据集的地方未修改

feature/10.0
hades 4 years ago
parent
commit
a83d2616ad
  1. 4
      designer-base/src/main/java/com/fr/design/mod/ContentObjectManager.java
  2. 4
      designer-base/src/main/java/com/fr/design/mod/ContentReplacerCenter.java
  3. 34
      designer-base/src/main/java/com/fr/design/mod/impl/change/DSColumnContentChange.java
  4. 34
      designer-base/src/main/java/com/fr/design/mod/impl/change/SimpleDSColumnContentChange.java
  5. 20
      designer-base/src/main/java/com/fr/design/mod/impl/repalce/DSColumnContentReplacer.java
  6. 20
      designer-base/src/main/java/com/fr/design/mod/impl/repalce/SimpleDSColumnContentReplacer.java
  7. 7
      designer-form/src/main/java/com/fr/design/mainframe/FormCreatorDropTarget.java

4
designer-base/src/main/java/com/fr/design/mod/ContentObjectManager.java

@ -3,10 +3,12 @@ package com.fr.design.mod;
import com.fr.base.Formula;
import com.fr.chart.web.ChartHyperRelateCellLink;
import com.fr.chart.web.ChartHyperRelateFloatLink;
import com.fr.data.SimpleDSColumn;
import com.fr.data.impl.NameTableData;
import com.fr.invoke.ClassHelper;
import com.fr.js.JavaScriptImpl;
import com.fr.plugin.chart.base.VanChartHtmlLabel;
import com.fr.report.cell.cellattr.core.group.DSColumn;
import com.fr.stable.Filter;
import java.util.HashSet;
import java.util.Map;
@ -42,6 +44,8 @@ public class ContentObjectManager {
set.add(ChartHyperRelateFloatLink.class.getName());
set.add(VanChartHtmlLabel.class.getName());
set.add(NameTableData.class.getName());
set.add(SimpleDSColumn.class.getName());
set.add(DSColumn.class.getName());
}
public void searchObject(Object ob) {

4
designer-base/src/main/java/com/fr/design/mod/ContentReplacerCenter.java

@ -6,9 +6,11 @@ import com.fr.design.mod.event.TableDataModifyEvent;
import com.fr.design.mod.event.WidgetNameModifyEvent;
import com.fr.design.mod.impl.change.ChartHyperRelateCellLinkContentChange;
import com.fr.design.mod.impl.change.ChartHyperRelateFloatLinkContentChange;
import com.fr.design.mod.impl.change.DSColumnContentChange;
import com.fr.design.mod.impl.change.FormulaContentChange;
import com.fr.design.mod.impl.change.JavaScriptContentChange;
import com.fr.design.mod.impl.change.NameTableDataContentChange;
import com.fr.design.mod.impl.change.SimpleDSColumnContentChange;
import com.fr.design.mod.impl.change.VanChartHtmlLabelContentChange;
import com.fr.event.Event;
import com.fr.event.EventDispatcher;
@ -75,6 +77,8 @@ public class ContentReplacerCenter {
contentChangeList.add(new JavaScriptContentChange());
contentChangeList.add(new VanChartHtmlLabelContentChange());
contentChangeList.add(new NameTableDataContentChange());
contentChangeList.add(new SimpleDSColumnContentChange());
contentChangeList.add(new DSColumnContentChange());
}
private void onRename(List<ContentChangeItem> contentChangeItemList, List<ContentChange> contentChangeList) {

34
designer-base/src/main/java/com/fr/design/mod/impl/change/DSColumnContentChange.java

@ -0,0 +1,34 @@
package com.fr.design.mod.impl.change;
import com.fr.design.mod.ContentChange;
import com.fr.design.mod.ContentReplacer;
import com.fr.design.mod.bean.ChangeItem;
import com.fr.design.mod.impl.repalce.DSColumnContentReplacer;
import com.fr.report.cell.cellattr.core.group.DSColumn;
import java.util.HashMap;
import java.util.Map;
/**
* @author hades
* @version 10.0
* Created by hades on 2021/6/2
*/
public class DSColumnContentChange implements ContentChange<DSColumn> {
private final Map<ChangeItem, ContentReplacer<DSColumn>> map;
public DSColumnContentChange() {
map = new HashMap<>();
map.put(ChangeItem.TABLE_DATA_NAME, new DSColumnContentReplacer());
}
@Override
public String type() {
return DSColumn.class.getName();
}
@Override
public Map<ChangeItem, ContentReplacer<DSColumn>> changeInfo() {
return map;
}
}

34
designer-base/src/main/java/com/fr/design/mod/impl/change/SimpleDSColumnContentChange.java

@ -0,0 +1,34 @@
package com.fr.design.mod.impl.change;
import com.fr.data.SimpleDSColumn;
import com.fr.design.mod.ContentChange;
import com.fr.design.mod.ContentReplacer;
import com.fr.design.mod.bean.ChangeItem;
import com.fr.design.mod.impl.repalce.SimpleDSColumnContentReplacer;
import java.util.HashMap;
import java.util.Map;
/**
* @author hades
* @version 10.0
* Created by hades on 2021/6/2
*/
public class SimpleDSColumnContentChange implements ContentChange<SimpleDSColumn> {
private Map<ChangeItem, ContentReplacer<SimpleDSColumn>> map;
public SimpleDSColumnContentChange() {
map = new HashMap<>();
map.put(ChangeItem.TABLE_DATA_NAME, new SimpleDSColumnContentReplacer());
}
@Override
public String type() {
return SimpleDSColumn.class.getName();
}
@Override
public Map<ChangeItem, ContentReplacer<SimpleDSColumn>> changeInfo() {
return map;
}
}

20
designer-base/src/main/java/com/fr/design/mod/impl/repalce/DSColumnContentReplacer.java

@ -0,0 +1,20 @@
package com.fr.design.mod.impl.repalce;
import com.fr.design.mod.ContentReplacer;
import com.fr.general.ComparatorUtils;
import com.fr.report.cell.cellattr.core.group.DSColumn;
/**
* @author hades
* @version 10.0
* Created by hades on 2021/6/2
*/
public class DSColumnContentReplacer implements ContentReplacer<DSColumn> {
@Override
public void replace(DSColumn dsColumn, String oldName, String newName) {
if (ComparatorUtils.equals(dsColumn.getDSName(), oldName)) {
dsColumn.setDSName(newName);
}
}
}

20
designer-base/src/main/java/com/fr/design/mod/impl/repalce/SimpleDSColumnContentReplacer.java

@ -0,0 +1,20 @@
package com.fr.design.mod.impl.repalce;
import com.fr.data.SimpleDSColumn;
import com.fr.design.mod.ContentReplacer;
import com.fr.general.ComparatorUtils;
/**
* @author hades
* @version 10.0
* Created by hades on 2021/6/2
*/
public class SimpleDSColumnContentReplacer implements ContentReplacer<SimpleDSColumn> {
@Override
public void replace(SimpleDSColumn simpleDSColumn, String oldName, String newName) {
if (ComparatorUtils.equals(simpleDSColumn.getDsName(), oldName)) {
simpleDSColumn.setDsName(newName);
}
}
}

7
designer-form/src/main/java/com/fr/design/mainframe/FormCreatorDropTarget.java

@ -5,6 +5,7 @@ import com.fr.base.chart.BaseChartCollection;
import com.fr.chart.chartattr.ChartCollection;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.DesignModelAdapter;
import com.fr.design.data.DesignTableDataManager;
import com.fr.design.data.datapane.TableDataTreePane;
import com.fr.design.designer.beans.AdapterBus;
import com.fr.design.designer.beans.HoverPainter;
@ -34,6 +35,7 @@ import com.fr.stable.Constants;
import com.fr.stable.StringUtils;
import java.util.Collections;
import java.util.HashMap;
import javax.swing.BorderFactory;
import javax.swing.JWindow;
import java.util.List;
@ -112,8 +114,13 @@ public class FormCreatorDropTarget extends DropTarget {
tdNameMap = TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()).addTableData(bindInfo.getName(), sharableEditor.getTableDataSource(), true);
//合并数据集之后,可能会有数据集名称变化,做一下联动
//共享的组件拿的时候都是克隆的,这边改拖拽中克隆的对象而非新克隆对象,上面这个新克隆的对象只是为了拿数据集
Map<String, String> map = new HashMap<>();
for (Map.Entry<String, String> entry : tdNameMap.entrySet()) {
designer.getTarget().renameTableData(widget, entry.getKey(), entry.getValue());
map.put(entry.getKey(), entry.getValue());
}
if (!map.isEmpty()) {
DesignTableDataManager.fireDSChanged(map);
}
}
EventDispatcher.fire(TableDataModifyEvent.INSTANCE, new ContentChangeItem(tdNameMap, widget, ChangeItem.TABLE_DATA_NAME));

Loading…
Cancel
Save