Browse Source

Merge branch 'release/10.0' of https://code.fineres.com/scm/~qinghui.liu/design into release/10.0

feature/big-screen
Qinghui.Liu 4 years ago
parent
commit
b1efa1fc00
  1. 5
      designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java
  2. 9
      designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java
  3. 3
      designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java
  4. 8
      designer-base/src/main/java/com/fr/design/mainframe/WestRegionContainerPane.java
  5. 2
      designer-base/src/main/java/com/fr/design/update/push/DesignerPushUpdateDialog.java
  6. 27
      designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java
  7. 6
      designer-chart/src/main/java/com/fr/design/chart/ChartIcon.java
  8. 8
      designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/ChartDataFilterPane.java
  9. 159
      designer-chart/src/main/java/com/fr/van/chart/range/component/LegendGradientBar.java
  10. 2
      designer-form/src/main/java/com/fr/design/mainframe/FormArea.java
  11. 17
      designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java
  12. 16
      designer-realize/src/main/java/com/fr/design/cell/editor/ChartCellEditor.java
  13. 17
      designer-realize/src/main/java/com/fr/design/cell/editor/ChartFloatEditor.java
  14. 4
      designer-realize/src/main/java/com/fr/design/condition/HyperlinkPane.java
  15. 6
      designer-realize/src/main/java/com/fr/design/condition/WidgetHighlightPane.java
  16. 2
      designer-realize/src/main/java/com/fr/design/mainframe/ReportComponentComposite.java
  17. 2
      designer-realize/src/main/java/com/fr/design/mainframe/form/FormReportComponentComposite.java

5
designer-base/src/main/java/com/fr/design/actions/help/AboutPane.java

@ -55,8 +55,9 @@ public class AboutPane extends JPanel {
JPanel contentPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane(); JPanel contentPane = FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane();
centerPane.add(contentPane, BorderLayout.NORTH); centerPane.add(contentPane, BorderLayout.NORTH);
contentPane.add(new BoxCenterAligmentPane(getBuildTitle()));
BoxCenterAlignmentCopyablePane buildCopyPane = new BoxCenterAlignmentCopyablePane( BoxCenterAlignmentCopyablePane buildCopyPane = new BoxCenterAlignmentCopyablePane(
getBuildTitle(), StringUtils.EMPTY,
getVersionBuildNO(), getVersionBuildNO(),
new String[]{ new String[]{
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Copy_Build_NO"), com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Copy_Build_NO"),
@ -204,7 +205,7 @@ public class AboutPane extends JPanel {
private String getBuildTitle() { private String getBuildTitle() {
return append(ProductConstants.APP_NAME, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_About_Version"), return append(ProductConstants.APP_NAME, com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_About_Version"),
StringUtils.BLANK, ProductConstants.RELEASE_VERSION, BUILD_PREFIX); StringUtils.BLANK, ProductConstants.VERSION, BUILD_PREFIX);
} }
private JPanel getEmailActionPane(final String desc, final String mailTo) { private JPanel getEmailActionPane(final String desc, final String mailTo) {

9
designer-base/src/main/java/com/fr/design/file/HistoryTemplateListCache.java

@ -370,6 +370,7 @@ public class HistoryTemplateListCache implements CallbackEvent {
*/ */
public void load() { public void load() {
FineLoggerFactory.getLogger().info("Env Change Template Loading..."); FineLoggerFactory.getLogger().info("Env Change Template Loading...");
JTemplate currentTemplate = null;
if (stashFILEMap != null && stashFILEMap.size() != 0) { if (stashFILEMap != null && stashFILEMap.size() != 0) {
int size = historyList.size(); int size = historyList.size();
for (int i = 0; i < size; i++) { for (int i = 0; i < size; i++) {
@ -385,20 +386,24 @@ public class HistoryTemplateListCache implements CallbackEvent {
historyList.set(i, template); historyList.set(i, template);
// 替换当前正在编辑的模板,使用添加并激活的方式,以便使用统一的入口来处理监听事件 // 替换当前正在编辑的模板,使用添加并激活的方式,以便使用统一的入口来处理监听事件
if (isCurrentEditingFile(template.getPath())) { if (isCurrentEditingFile(template.getPath())) {
loadCurrentTemplate(template); currentTemplate = template;
} }
} else { } else {
// 当模板为空时 说明是一个新建的未保存模板 但是内存中保存了该模板 可以从中获取 // 当模板为空时 说明是一个新建的未保存模板 但是内存中保存了该模板 可以从中获取
JTemplate jt = historyList.get(i); JTemplate jt = historyList.get(i);
// 另外如果该模板是正在编辑的模板,需要要激活 // 另外如果该模板是正在编辑的模板,需要要激活
if (jt != null && isCurrentEditingFile(jt.getPath())) { if (jt != null && isCurrentEditingFile(jt.getPath())) {
loadCurrentTemplate(jt); currentTemplate = jt;
} }
} }
} catch (Exception e) { } catch (Exception e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e); FineLoggerFactory.getLogger().error(e.getMessage(), e);
} }
} }
// 最后加载当前正在编辑的模板 以保证数据集刷新正常
if (currentTemplate != null) {
loadCurrentTemplate(currentTemplate);
}
stashFILEMap.clear(); stashFILEMap.clear();
MutilTempalteTabPane.getInstance().refreshOpenedTemplate(historyList); MutilTempalteTabPane.getInstance().refreshOpenedTemplate(historyList);
MutilTempalteTabPane.getInstance().repaint(); MutilTempalteTabPane.getInstance().repaint();

3
designer-base/src/main/java/com/fr/design/javascript/JSContentPane.java

@ -31,6 +31,7 @@ public class JSContentPane extends BasicPane {
private RSyntaxTextArea contentTextArea; private RSyntaxTextArea contentTextArea;
private UILabel funNameLabel; private UILabel funNameLabel;
private AutoCompletion ac; private AutoCompletion ac;
private static final Dimension FUNCTION_NAME_LABEL_SIZE = new Dimension(300, 80);
private int titleWidth = 180; private int titleWidth = 180;
@ -68,7 +69,7 @@ public class JSContentPane extends BasicPane {
JPanel jsParaPane = new JPanel(new BorderLayout(4, 4)); JPanel jsParaPane = new JPanel(new BorderLayout(4, 4));
jsParaPane.setPreferredSize(new Dimension(300, 80)); jsParaPane.setPreferredSize(new Dimension(300, 80));
UIScrollPane scrollPane = new UIScrollPane(funNameLabel); UIScrollPane scrollPane = new UIScrollPane(funNameLabel);
scrollPane.setPreferredSize(new Dimension(400, 80)); scrollPane.setPreferredSize(FUNCTION_NAME_LABEL_SIZE);
scrollPane.setBorder(new UIRoundedBorder(UIConstants.TITLED_BORDER_COLOR, 1, UIConstants.ARC)); scrollPane.setBorder(new UIRoundedBorder(UIConstants.TITLED_BORDER_COLOR, 1, UIConstants.ARC));
jsParaPane.add(scrollPane, BorderLayout.WEST); jsParaPane.add(scrollPane, BorderLayout.WEST);
jsParaPane.add(label, BorderLayout.EAST); jsParaPane.add(label, BorderLayout.EAST);

8
designer-base/src/main/java/com/fr/design/mainframe/WestRegionContainerPane.java

@ -39,8 +39,12 @@ public class WestRegionContainerPane extends UIResizableContainer {
@Override @Override
public void on(PluginEvent event) { public void on(PluginEvent event) {
setDownPane(TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter())); if (getDownPane() != null) {
replaceDownPane(TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()));
} else {
setDownPane(TableDataTreePane.getInstance(DesignModelAdapter.getCurrentModelAdapter()));
}
} }
}, new PluginFilter() { }, new PluginFilter() {

2
designer-base/src/main/java/com/fr/design/update/push/DesignerPushUpdateDialog.java

@ -79,7 +79,7 @@ class DesignerPushUpdateDialog extends UIDialog {
private Model createModel(DesignerUpdateInfo updateInfo) { private Model createModel(DesignerUpdateInfo updateInfo) {
Model model = new Model(); Model model = new Model();
model.setVersion(updateInfo.getLatestVersion()); model.setVersion(updateInfo.getLatestFullVersion());
model.setContent(updateInfo.getPushContent()); model.setContent(updateInfo.getPushContent());
model.setMoreInfoUrl(updateInfo.getMoreInfoUrl()); model.setMoreInfoUrl(updateInfo.getMoreInfoUrl());
model.setBackgroundUrl(updateInfo.getBackgroundUrl()); model.setBackgroundUrl(updateInfo.getBackgroundUrl());

27
designer-base/src/main/java/com/fr/design/update/push/DesignerUpdateInfo.java

@ -1,7 +1,12 @@
package com.fr.design.update.push; package com.fr.design.update.push;
import com.fr.general.CloudCenter;
import com.fr.general.ComparatorUtils; import com.fr.general.ComparatorUtils;
import com.fr.general.http.HttpToolbox;
import com.fr.json.JSON;
import com.fr.json.JSONFactory;
import com.fr.json.JSONObject; import com.fr.json.JSONObject;
import com.fr.log.FineLoggerFactory;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import java.security.InvalidParameterException; import java.security.InvalidParameterException;
@ -14,6 +19,8 @@ class DesignerUpdateInfo {
private static final String KEY_CONTENT = "content"; private static final String KEY_CONTENT = "content";
private static final String KEY_BACKGROUND_URL = "background"; private static final String KEY_BACKGROUND_URL = "background";
private static final String KEY_MORE_INFO_URL = "more"; private static final String KEY_MORE_INFO_URL = "more";
private static final String SPLIT_CHAR = "-";
private final String currentVersion; // 当前版本 private final String currentVersion; // 当前版本
private final String latestVersion; // 最新版本 private final String latestVersion; // 最新版本
@ -58,6 +65,26 @@ class DesignerUpdateInfo {
return latestVersion; return latestVersion;
} }
String getLatestFullVersion() {
try {
String url = CloudCenter.getInstance().acquireUrlByKind("jar10.new.update");
if (StringUtils.isBlank(url)) {
return StringUtils.EMPTY;
}
String res = HttpToolbox.get(url);
if (StringUtils.isBlank(res)) {
return StringUtils.EMPTY;
}
JSONObject jsonObject = JSONFactory.createJSON(JSON.OBJECT, res);
String version = jsonObject.getString("version");
String build = jsonObject.getString("build");
return version + SPLIT_CHAR + build;
} catch (Throwable e) {
FineLoggerFactory.getLogger().error(e.getMessage(), e);
}
return StringUtils.EMPTY;
}
String getLastIgnoredVersion() { String getLastIgnoredVersion() {
return lastIgnoredVersion; return lastIgnoredVersion;
} }

6
designer-chart/src/main/java/com/fr/design/chart/ChartIcon.java

@ -3,8 +3,8 @@ package com.fr.design.chart;
import com.fr.base.chart.BaseChartPainter; import com.fr.base.chart.BaseChartPainter;
import com.fr.base.chart.chartdata.CallbackEvent; import com.fr.base.chart.chartdata.CallbackEvent;
import com.fr.base.chart.result.WebChartIDInfo; import com.fr.base.chart.result.WebChartIDInfo;
import com.fr.chart.chartattr.Chart;
import com.fr.chart.chartattr.ChartCollection; import com.fr.chart.chartattr.ChartCollection;
import com.fr.chartx.attr.ChartProvider;
import com.fr.design.ChartTypeInterfaceManager; import com.fr.design.ChartTypeInterfaceManager;
import com.fr.design.file.HistoryTemplateListCache; import com.fr.design.file.HistoryTemplateListCache;
import com.fr.script.Calculator; import com.fr.script.Calculator;
@ -57,8 +57,8 @@ public class ChartIcon implements Icon, XMLable {
} }
private void initChartName() { private void initChartName() {
Chart chart = chartCollection.getSelectedChart(Chart.class); ChartProvider chart = chartCollection.getSelectedChartProvider(ChartProvider.class);
String[] subName = ChartTypeInterfaceManager.getInstance().getSubName(chart.getPlot().getPlotID()); String[] subName = ChartTypeInterfaceManager.getInstance().getSubName(chart.getID());
chartName = subName[0]; chartName = subName[0];
} }

8
designer-chart/src/main/java/com/fr/design/mainframe/chart/gui/data/ChartDataFilterPane.java

@ -7,9 +7,9 @@ import com.fr.chart.chartattr.Plot;
import com.fr.chart.chartdata.TopDefinition; import com.fr.chart.chartdata.TopDefinition;
import com.fr.design.gui.frpane.AbstractAttrNoScrollPane; import com.fr.design.gui.frpane.AbstractAttrNoScrollPane;
import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.i18n.Toolkit;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.itextfield.UITextField;
import com.fr.design.i18n.Toolkit;
import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayout;
import com.fr.design.mainframe.chart.gui.ChartDataPane; import com.fr.design.mainframe.chart.gui.ChartDataPane;
import com.fr.design.mainframe.chart.gui.style.AbstractChartTabPane; import com.fr.design.mainframe.chart.gui.style.AbstractChartTabPane;
@ -21,12 +21,12 @@ import javax.swing.BorderFactory;
import javax.swing.JPanel; import javax.swing.JPanel;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import java.util.ArrayList;
import java.util.List;
import java.awt.BorderLayout; import java.awt.BorderLayout;
import java.awt.Component; import java.awt.Component;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.FlowLayout; import java.awt.FlowLayout;
import java.util.ArrayList;
import java.util.List;
/** /**
* 图表数据 分类 系列 过滤界面. * 图表数据 分类 系列 过滤界面.
@ -37,7 +37,7 @@ import java.util.List;
public class ChartDataFilterPane extends ThirdTabPane<ChartCollection> { public class ChartDataFilterPane extends ThirdTabPane<ChartCollection> {
private static final long serialVersionUID = 3650522989381790194L; private static final long serialVersionUID = 3650522989381790194L;
private static final int PAN_WIDTH = 246; private static final int PAN_WIDTH = 246;
private static final int FIL_HEIGHT = 150; private static final int FIL_HEIGHT = 200;
private CategoryFilterPane categoryPane; private CategoryFilterPane categoryPane;
private SeriesFilterPane seriesPane; private SeriesFilterPane seriesPane;

159
designer-chart/src/main/java/com/fr/van/chart/range/component/LegendGradientBar.java

@ -7,7 +7,6 @@ import com.fr.design.event.UIObserverListener;
import com.fr.design.mainframe.DesignerContext; import com.fr.design.mainframe.DesignerContext;
import com.fr.design.style.background.gradient.SelectColorPointBtn; import com.fr.design.style.background.gradient.SelectColorPointBtn;
import com.fr.design.style.color.ColorCell; import com.fr.design.style.color.ColorCell;
import com.fr.design.style.color.ColorSelectConfigManager;
import com.fr.design.style.color.ColorSelectDetailPane; import com.fr.design.style.color.ColorSelectDetailPane;
import com.fr.design.style.color.ColorSelectDialog; import com.fr.design.style.color.ColorSelectDialog;
import com.fr.design.style.color.ColorSelectable; import com.fr.design.style.color.ColorSelectable;
@ -18,6 +17,9 @@ import com.fr.stable.AssistUtils;
import javax.swing.JComponent; import javax.swing.JComponent;
import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener; import javax.swing.event.ChangeListener;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.awt.Color; import java.awt.Color;
import java.awt.Cursor; import java.awt.Cursor;
import java.awt.Dimension; import java.awt.Dimension;
@ -27,9 +29,6 @@ import java.awt.LinearGradientPaint;
import java.awt.event.MouseAdapter; import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.geom.Point2D; import java.awt.geom.Point2D;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class LegendGradientBar extends JComponent implements ColorSelectable, UIObserver { public class LegendGradientBar extends JComponent implements ColorSelectable, UIObserver {
@ -75,11 +74,11 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
private List<ChangeListener> changeListenerList = new ArrayList<ChangeListener>(); private List<ChangeListener> changeListenerList = new ArrayList<ChangeListener>();
public LegendGradientBar(){ public LegendGradientBar() {
startPos = 4; startPos = 4;
endPos = max; endPos = max;
setSubColor(new Color(36,167,255)); setSubColor(new Color(36, 167, 255));
setColorSelectionBtnNum(2 + 1); setColorSelectionBtnNum(2 + 1);
@ -117,10 +116,10 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
private float[] initDist(int colorSelectionBtnNum) { private float[] initDist(int colorSelectionBtnNum) {
float[] dist = new float[colorSelectionBtnNum]; float[] dist = new float[colorSelectionBtnNum];
dist[0] = 0f; dist[0] = 0f;
for (int i = 0; i < colorSelectionBtnNum-2; i++) { for (int i = 0; i < colorSelectionBtnNum - 2; i++) {
dist[i+1] = (float) ((selectColorPointBtnList.get(i).getX() - 4) / (max - 4)); dist[i + 1] = (float) ((selectColorPointBtnList.get(i).getX() - 4) / (max - 4));
} }
dist[colorSelectionBtnNum-1] = 1f; dist[colorSelectionBtnNum - 1] = 1f;
return dist; return dist;
} }
@ -141,8 +140,8 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
private Color[] initColors(Color subColor, int colorSelectionBtnNum) { private Color[] initColors(Color subColor, int colorSelectionBtnNum) {
Color[] converseColors = getColorArray(subColor, colorSelectionBtnNum); Color[] converseColors = getColorArray(subColor, colorSelectionBtnNum);
Color[] colors = new Color[colorSelectionBtnNum]; Color[] colors = new Color[colorSelectionBtnNum];
for (int i = 0; i < colorSelectionBtnNum; i++){ for (int i = 0; i < colorSelectionBtnNum; i++) {
colors[i] = converseColors[colorSelectionBtnNum-1 - i]; colors[i] = converseColors[colorSelectionBtnNum - 1 - i];
} }
return colors; return colors;
} }
@ -150,30 +149,32 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
private void initColorSelectBtn(Color[] colors, int colorSelectionBtnNum) { private void initColorSelectBtn(Color[] colors, int colorSelectionBtnNum) {
//获取按钮颜色数组 //获取按钮颜色数组
Color startSlotColor = colors[0]; Color startSlotColor = colors[0];
Color endSlotColor = colors[colorSelectionBtnNum-1]; Color endSlotColor = colors[colorSelectionBtnNum - 1];
Color[] pColors = new Color[colorSelectionBtnNum - 2]; Color[] pColors = new Color[colorSelectionBtnNum - 2];
for (int i = 0; i < pColors.length; i++){ for (int i = 0; i < pColors.length; i++) {
pColors[i] = colors[i + 1]; pColors[i] = colors[i + 1];
} }
selectColorSlotBtnStart = new SelectColorPointBtn(startPos, REC_HEIGHT, startSlotColor, new Color(138,138,138)); selectColorSlotBtnStart = new SelectColorPointBtn(startPos, REC_HEIGHT, startSlotColor, new Color(138, 138, 138));
selectColorSlotBtnEnd = new SelectColorPointBtn(endPos, REC_HEIGHT, endSlotColor, new Color(138,138,138)); selectColorSlotBtnEnd = new SelectColorPointBtn(endPos, REC_HEIGHT, endSlotColor, new Color(138, 138, 138));
//初始化list //初始化list
selectColorPointBtnList = new ArrayList<SelectColorPointBtn>(); selectColorPointBtnList = new ArrayList<SelectColorPointBtn>();
//加入可滑动颜色选择器 //加入可滑动颜色选择器
for (int i = 0; i < pColors.length; i++){ for (int i = 0; i < pColors.length; i++) {
SelectColorPointBtn pi = new SelectColorPointBtn(((startPos+endPos)/(pColors.length+1))*(i+1), REC_HEIGHT, pColors[i]); SelectColorPointBtn pi = new SelectColorPointBtn(((startPos + endPos) / (pColors.length + 1)) * (i + 1), REC_HEIGHT, pColors[i]);
selectColorPointBtnList.add(pi); selectColorPointBtnList.add(pi);
} }
refreshColorsAndDist(selectColorPointBtnList);
this.repaint(); this.repaint();
} }
/** /**
* 添加事件 * 添加事件
*
* @param changeListener 事件 * @param changeListener 事件
*/ */
public void addChangeListener(ChangeListener changeListener) { public void addChangeListener(ChangeListener changeListener) {
@ -216,7 +217,7 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
//如果该位置已经有滑块占领,则做跨越偏移 //如果该位置已经有滑块占领,则做跨越偏移
selectColorPointBtnList.get(index).setX(LegendGradientBar.this.setOffset(e.getX(), index, OFFSETSTEP)); selectColorPointBtnList.get(index).setX(LegendGradientBar.this.setOffset(e.getX(), index, OFFSETSTEP));
} }
refreshColorsAndDist(selectColorPointBtnList);
LegendGradientBar.this.repaint(); LegendGradientBar.this.repaint();
} }
}); });
@ -224,25 +225,23 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
//防止位置重复,设置偏移 //防止位置重复,设置偏移
private int setOffset(int x, int index, int offset) { private int setOffset(int x, int index, int offset) {
for (int i = 0; i < selectColorPointBtnList.size(); i++){ for (int i = 0; i < selectColorPointBtnList.size(); i++) {
if (i != index && AssistUtils.equals(x, selectColorPointBtnList.get(i).getX())) { if (i != index && AssistUtils.equals(x, selectColorPointBtnList.get(i).getX())) {
if (x >= (min+max)/2) { if (x >= (min + max) / 2) {
x -= offset; x -= offset;
x = setOffset(x, index, offset+OFFSETSTEP); x = setOffset(x, index, offset + OFFSETSTEP);
} } else {
else{
x += offset; x += offset;
x = setOffset(x, index, offset+OFFSETSTEP); x = setOffset(x, index, offset + OFFSETSTEP);
} }
} }
} }
//边界情况 //边界情况
if (x <= min){ if (x <= min) {
x = min + (index+1)*OFFSETSTEP; x = min + (index + 1) * OFFSETSTEP;
} } else if (x >= max) {
else if (x >= max){ x = max - (index + 1) * OFFSETSTEP;
x = max - (index+1)*OFFSETSTEP;
} }
return x; return x;
} }
@ -259,50 +258,33 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
break; break;
} }
} }
if (select >= 0) { if (select >= 0) {
ColorSelectDetailPane pane = new ColorSelectDetailPane(Color.WHITE); dealClick(selectColorPointBtnList.get(select));
ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, LegendGradientBar.this); } else if (selectColorSlotBtnStart.contains(e.getX(), e.getY())) {
Color color = LegendGradientBar.this.getColor(); dealClick(selectColorSlotBtnStart);
if (color != null) {
DesignerEnvManager.getEnvManager().getColorConfigManager().addToColorQueue(color);
selectColorPointBtnList.get(select).setColorInner(color);
LegendGradientBar.this.repaint();
}
}
//是否选中颜色编辑槽
else if (selectColorSlotBtnStart.contains(e.getX(), e.getY())) {
ColorSelectDetailPane pane = new ColorSelectDetailPane(Color.WHITE);
ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, LegendGradientBar.this);
Color color = LegendGradientBar.this.getColor();
if (color != null) {
DesignerEnvManager.getEnvManager().getColorConfigManager().addToColorQueue(color);
selectColorSlotBtnStart.setColorInner(color);
//stateChanged();
LegendGradientBar.this.repaint();
}
} else if (selectColorSlotBtnEnd.contains(e.getX(), e.getY())) { } else if (selectColorSlotBtnEnd.contains(e.getX(), e.getY())) {
ColorSelectDetailPane pane = new ColorSelectDetailPane(Color.WHITE); dealClick(selectColorSlotBtnEnd);
ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, LegendGradientBar.this);
Color color = LegendGradientBar.this.getColor();
if (color != null) {
DesignerEnvManager.getEnvManager().getColorConfigManager().addToColorQueue(color);
selectColorSlotBtnEnd.setColorInner(color);
//stateChanged();
LegendGradientBar.this.repaint();
}
} }
LegendGradientBar.this.repaint();
} }
} }
}); });
} }
private void addMouseReleasedListener(){ private void dealClick(SelectColorPointBtn selectColorPointBtn) {
ColorSelectDetailPane pane = new ColorSelectDetailPane(Color.WHITE);
this.setColor(selectColorPointBtn.getColorInner());
ColorSelectDialog.showDialog(DesignerContext.getDesignerFrame(), pane, Color.WHITE, LegendGradientBar.this);
Color color = this.getColor();
if (color != null) {
DesignerEnvManager.getEnvManager().getColorConfigManager().addToColorQueue(color);
selectColorPointBtn.setColorInner(color);
refreshColorsAndDist(selectColorPointBtnList);
LegendGradientBar.this.repaint();
}
}
private void addMouseReleasedListener() {
this.addMouseListener(new MouseAdapter() { this.addMouseListener(new MouseAdapter() {
@Override @Override
public void mouseReleased(MouseEvent e) { public void mouseReleased(MouseEvent e) {
@ -318,14 +300,11 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
Point2D start = new Point2D.Float(4, 0); Point2D start = new Point2D.Float(4, 0);
Point2D end = new Point2D.Float(max, 0); Point2D end = new Point2D.Float(max, 0);
//获取排序后的颜色数组和位置数组
refreshColorsAndDist(selectColorPointBtnList);
LinearGradientPaint paint = new LinearGradientPaint(start, end, dist, colors); LinearGradientPaint paint = new LinearGradientPaint(start, end, dist, colors);
g2.setPaint(paint); g2.setPaint(paint);
g2.fillRect(4, 0, max - 4, 30); g2.fillRect(4, 0, max - 4, 30);
g2.setColor(new Color(138,138,138)); g2.setColor(new Color(138, 138, 138));
g2.drawRect(4, 0, max - 4, 30); g2.drawRect(4, 0, max - 4, 30);
//开始和结束位置颜色选择槽位 //开始和结束位置颜色选择槽位
@ -343,22 +322,22 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
Collections.sort(select); Collections.sort(select);
colors[0] = selectColorSlotBtnStart.getColorInner(); colors[0] = selectColorSlotBtnStart.getColorInner();
for (int i = 0; i < colorSelectionBtnNum-2; i++) { for (int i = 0; i < colorSelectionBtnNum - 2; i++) {
colors[i+1] = select.get(i).getColorInner(); colors[i + 1] = select.get(i).getColorInner();
} }
colors[colorSelectionBtnNum-1] = selectColorSlotBtnEnd.getColorInner(); colors[colorSelectionBtnNum - 1] = selectColorSlotBtnEnd.getColorInner();
dist = new float[colorSelectionBtnNum]; dist = new float[colorSelectionBtnNum];
dist[0] = 0f; dist[0] = 0f;
for (int i = 0; i < colorSelectionBtnNum-2; i++) { for (int i = 0; i < colorSelectionBtnNum - 2; i++) {
dist[i+1] = (float) ((select.get(i).getX() - 4) / (max - 4)); dist[i + 1] = (float) ((select.get(i).getX() - 4) / (max - 4));
} }
dist[colorSelectionBtnNum-1] = 1f; dist[colorSelectionBtnNum - 1] = 1f;
fireColorAndDistChangeListener(); fireColorAndDistChangeListener();
} }
public void refreshSubColor(Color subColor){ public void refreshSubColor(Color subColor) {
//设置主题色 //设置主题色
setSubColor(subColor); setSubColor(subColor);
@ -370,9 +349,9 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
} }
public void refreshColorSelectionBtnNum(int num){ public void refreshColorSelectionBtnNum(int num) {
//设置主题色 //设置主题色
colorSelectionBtnNum = num+1; colorSelectionBtnNum = num + 1;
//计算colors数组 //计算colors数组
colors = initColors(subColor, colorSelectionBtnNum); colors = initColors(subColor, colorSelectionBtnNum);
@ -418,14 +397,14 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
} }
public void populate(GradualIntervalConfig intervalConfig){ public void populate(GradualIntervalConfig intervalConfig) {
if(intervalConfig == null) { if (intervalConfig == null) {
return; return;
} }
setSubColor(intervalConfig.getSubColor()); setSubColor(intervalConfig.getSubColor());
setColorSelectionBtnNum((int)(intervalConfig.getDivStage() + 1)); setColorSelectionBtnNum((int) (intervalConfig.getDivStage() + 1));
populateColorAndDist(intervalConfig.getGradualColorDistList()); populateColorAndDist(intervalConfig.getGradualColorDistList());
@ -436,15 +415,15 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
int num = gradualColorDistList.size(); int num = gradualColorDistList.size();
this.colors = new Color[num]; this.colors = new Color[num];
this.dist = new float[num]; this.dist = new float[num];
for (int i = 0; i < num; i++){ for (int i = 0; i < num; i++) {
this.colors[i] = gradualColorDistList.get(i).getColor(); this.colors[i] = gradualColorDistList.get(i).getColor();
this.dist[i] = gradualColorDistList.get(i).getPosition(); this.dist[i] = gradualColorDistList.get(i).getPosition();
} }
} }
public void update(GradualIntervalConfig intervalConfig){ public void update(GradualIntervalConfig intervalConfig) {
ArrayList<GradualColorDist> colorDistList = new ArrayList<GradualColorDist>(); ArrayList<GradualColorDist> colorDistList = new ArrayList<GradualColorDist>();
for (int i = 0; i < getColorSelectionBtnNum(); i++){ for (int i = 0; i < getColorSelectionBtnNum(); i++) {
colorDistList.add(new GradualColorDist(this.dist[i], this.colors[i])); colorDistList.add(new GradualColorDist(this.dist[i], this.colors[i]));
} }
intervalConfig.setGradualColorDistList(colorDistList); intervalConfig.setGradualColorDistList(colorDistList);
@ -453,26 +432,26 @@ public class LegendGradientBar extends JComponent implements ColorSelectable, UI
private void refreshColorSelectBtn(Color[] colors, float[] dist) { private void refreshColorSelectBtn(Color[] colors, float[] dist) {
//获取按钮颜色数组 //获取按钮颜色数组
Color startSlotColor = colors[0]; Color startSlotColor = colors[0];
Color endSlotColor = colors[colors.length-1]; Color endSlotColor = colors[colors.length - 1];
Color[] pColors = new Color[colors.length - 2]; Color[] pColors = new Color[colors.length - 2];
for (int i = 0; i < pColors.length; i++){ for (int i = 0; i < pColors.length; i++) {
pColors[i] = colors[i + 1]; pColors[i] = colors[i + 1];
} }
float[] position = new float[dist.length - 2]; float[] position = new float[dist.length - 2];
for (int i = 0; i < position.length; i++){ for (int i = 0; i < position.length; i++) {
position[i] = dist[i+1]*(max-4) + 4; position[i] = dist[i + 1] * (max - 4) + 4;
} }
selectColorSlotBtnStart = new SelectColorPointBtn(startPos, REC_HEIGHT, startSlotColor, new Color(138,138,138)); selectColorSlotBtnStart = new SelectColorPointBtn(startPos, REC_HEIGHT, startSlotColor, new Color(138, 138, 138));
selectColorSlotBtnEnd = new SelectColorPointBtn(endPos, REC_HEIGHT, endSlotColor, new Color(138,138,138)); selectColorSlotBtnEnd = new SelectColorPointBtn(endPos, REC_HEIGHT, endSlotColor, new Color(138, 138, 138));
//刷新可移动按钮的位置 //刷新可移动按钮的位置
selectColorPointBtnList = new ArrayList<SelectColorPointBtn>(); selectColorPointBtnList = new ArrayList<SelectColorPointBtn>();
//加入可滑动颜色选择器 //加入可滑动颜色选择器
for (int i = 0; i < pColors.length; i++){ for (int i = 0; i < pColors.length; i++) {
SelectColorPointBtn pi = new SelectColorPointBtn(position[i], REC_HEIGHT, pColors[i]); SelectColorPointBtn pi = new SelectColorPointBtn(position[i], REC_HEIGHT, pColors[i]);
selectColorPointBtnList.add(pi); selectColorPointBtnList.add(pi);
} }

2
designer-form/src/main/java/com/fr/design/mainframe/FormArea.java

@ -117,7 +117,7 @@ public class FormArea extends JComponent implements ScrollRulerComponent {
addFormRuler(); addFormRuler();
} }
this.setFocusTraversalKeysEnabled(false); this.setFocusTraversalKeysEnabled(false);
this.addMouseWheelListener(showValSpinnerMouseWheelListener); this.designer.addMouseWheelListener(showValSpinnerMouseWheelListener);
registerShortCutKey(); registerShortCutKey();
} }

17
designer-form/src/main/java/com/fr/design/mainframe/FormDesigner.java

@ -83,10 +83,12 @@ import java.awt.Component;
import java.awt.Container; import java.awt.Container;
import java.awt.Dimension; import java.awt.Dimension;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Insets; import java.awt.Insets;
import java.awt.Point; import java.awt.Point;
import java.awt.Rectangle; import java.awt.Rectangle;
import java.awt.event.MouseEvent; import java.awt.event.MouseEvent;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.lang.reflect.InvocationHandler; import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method; import java.lang.reflect.Method;
@ -400,6 +402,19 @@ public class FormDesigner extends TargetComponent<Form> implements TreeSelection
com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Alert"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE); com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Basic_Alert"), JOptionPane.OK_CANCEL_OPTION, JOptionPane.WARNING_MESSAGE);
} }
public void paintChildren(Graphics g) {
Graphics2D g2d = (Graphics2D) g;
AffineTransform old = g2d.getTransform();
AffineTransform at = new AffineTransform();
at.translate(this.getPaintX(), this.getPaintY());
at.scale(this.getScale(), this.getScale());
g2d.transform(at);
super.paintChildren(g);
g2d.setTransform(old);
}
/** /**
* 自动添加组件 * 自动添加组件
* *
@ -993,7 +1008,7 @@ public class FormDesigner extends TargetComponent<Form> implements TreeSelection
@Nullable @Nullable
public XCreator getComponentAt(int x, int y, XCreator[] except) { public XCreator getComponentAt(int x, int y, XCreator[] except) {
XLayoutContainer container = y + this.getPaintY() < paraHeight - formArea.getVerticalValue() ? paraComponent : rootComponent; XLayoutContainer container = y < paraHeight - formArea.getVerticalValue() ? paraComponent : rootComponent;
if (container == null) { if (container == null) {
container = rootComponent; container = rootComponent;
} }

16
designer-realize/src/main/java/com/fr/design/cell/editor/ChartCellEditor.java

@ -10,7 +10,6 @@ import com.fr.grid.Grid;
import com.fr.report.cell.TemplateCellElement; import com.fr.report.cell.TemplateCellElement;
import com.fr.report.elementcase.TemplateElementCase; import com.fr.report.elementcase.TemplateElementCase;
import com.fr.stable.bridge.StableFactory; import com.fr.stable.bridge.StableFactory;
import com.fr.stable.core.PropertyChangeAdapter;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import java.awt.Component; import java.awt.Component;
@ -52,20 +51,7 @@ public class ChartCellEditor extends AbstractCellEditor implements DialogActionL
public Component getCellEditorComponent(final Grid grid, TemplateCellElement cellElement, int resolution) { public Component getCellEditorComponent(final Grid grid, TemplateCellElement cellElement, int resolution) {
Object valueCell = cellElement.getValue(); Object valueCell = cellElement.getValue();
if (valueCell instanceof BaseChartCollection) { if (valueCell instanceof BaseChartCollection) {
if (glyphComponent == null) { return null;
glyphComponent = DesignModuleFactory.getChartComponent((BaseChartCollection)valueCell);
glyphComponent.addStopEditingListener(new PropertyChangeAdapter() {
@Override
public void propertyChange() {
stopCellEditing();
grid.requestFocus();// kunsnat: 补充, 编辑图表reset之后, Grid也算停止编辑 重获焦点 bug20443SS
}
});
} else {
glyphComponent.populate((BaseChartCollection) valueCell);
}
this.chartCellEditorDialog = null;
return glyphComponent;
} }
this.chartCellEditorDialog = getMiddleChartDialog(SwingUtilities.getWindowAncestor(grid)); this.chartCellEditorDialog = getMiddleChartDialog(SwingUtilities.getWindowAncestor(grid));
this.chartCellEditorDialog.addDialogActionListener(this); this.chartCellEditorDialog.addDialogActionListener(this);

17
designer-realize/src/main/java/com/fr/design/cell/editor/ChartFloatEditor.java

@ -9,7 +9,6 @@ import com.fr.grid.Grid;
import com.fr.report.cell.FloatElement; import com.fr.report.cell.FloatElement;
import com.fr.stable.StringUtils; import com.fr.stable.StringUtils;
import com.fr.stable.bridge.StableFactory; import com.fr.stable.bridge.StableFactory;
import com.fr.stable.core.PropertyChangeAdapter;
import javax.swing.SwingUtilities; import javax.swing.SwingUtilities;
import java.awt.Component; import java.awt.Component;
@ -49,21 +48,7 @@ public class ChartFloatEditor extends AbstractFloatEditor implements DialogActio
public Component getFloatEditorComponent(final Grid grid, FloatElement floatElement, int resolution) { public Component getFloatEditorComponent(final Grid grid, FloatElement floatElement, int resolution) {
Object valueCell = floatElement.getValue(); Object valueCell = floatElement.getValue();
if (valueCell instanceof BaseChartCollection) { if (valueCell instanceof BaseChartCollection) {
this.chartFloatEditorDialog = null; return null;
if (glyphComponent == null) {
glyphComponent = DesignModuleFactory.getChartComponent((BaseChartCollection)valueCell);
glyphComponent.addStopEditingListener(new PropertyChangeAdapter() {
@Override
public void propertyChange() {
stopFloatEditing();
grid.requestFocus();// kunsnat: 补充, 编辑图表reset之后, Grid也算停止编辑 重获焦点 bug20443
}
});
} else {
glyphComponent.populate((BaseChartCollection) valueCell);
}
return glyphComponent;
} }
this.chartFloatEditorDialog = getMiddleChartDialog(SwingUtilities.getWindowAncestor(grid)); this.chartFloatEditorDialog = getMiddleChartDialog(SwingUtilities.getWindowAncestor(grid));
this.chartFloatEditorDialog.addDialogActionListener(this); this.chartFloatEditorDialog.addDialogActionListener(this);

4
designer-realize/src/main/java/com/fr/design/condition/HyperlinkPane.java

@ -15,7 +15,6 @@ import com.fr.report.cell.cellattr.highlight.HighlightAction;
import com.fr.report.cell.cellattr.highlight.HyperlinkHighlightAction; import com.fr.report.cell.cellattr.highlight.HyperlinkHighlightAction;
import javax.swing.*; import javax.swing.*;
import java.awt.Dimension;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
@ -31,7 +30,6 @@ public class HyperlinkPane extends ConditionAttrSingleConditionPane<HighlightAct
protected UIButton hyperlinkButton; protected UIButton hyperlinkButton;
protected HyperlinkGroupPane pane; protected HyperlinkGroupPane pane;
protected BasicDialog dialog; protected BasicDialog dialog;
private static final Dimension WINDOW_CUSTOM_SIZE = new Dimension(730, 600);
public HyperlinkPane(final ConditionAttributesPane conditionAttributesPane) { public HyperlinkPane(final ConditionAttributesPane conditionAttributesPane) {
super(conditionAttributesPane); super(conditionAttributesPane);
@ -41,7 +39,7 @@ public class HyperlinkPane extends ConditionAttrSingleConditionPane<HighlightAct
NameJavaScriptGroup nameHyperlinks = jsGroup; NameJavaScriptGroup nameHyperlinks = jsGroup;
pane = DesignerContext.getDesignerFrame().getSelectedJTemplate().getHyperLinkPaneNoPop(HyperlinkGroupPaneActionImpl.getInstance()); pane = DesignerContext.getDesignerFrame().getSelectedJTemplate().getHyperLinkPaneNoPop(HyperlinkGroupPaneActionImpl.getInstance());
pane.populate(nameHyperlinks); pane.populate(nameHyperlinks);
dialog = pane.showWindowWithCustomSize(SwingUtilities.getWindowAncestor(conditionAttributesPane), null, WINDOW_CUSTOM_SIZE); dialog = pane.showWindow(SwingUtilities.getWindowAncestor(conditionAttributesPane));
dialog.addDialogActionListener(new DialogActionAdapter() { dialog.addDialogActionListener(new DialogActionAdapter() {
@Override @Override
public void doOk() { public void doOk() {

6
designer-realize/src/main/java/com/fr/design/condition/WidgetHighlightPane.java

@ -12,12 +12,10 @@ import com.fr.design.widget.WidgetManageCardPane;
import com.fr.design.widget.WidgetPane; import com.fr.design.widget.WidgetPane;
import com.fr.form.ui.*; import com.fr.form.ui.*;
import com.fr.form.ui.TextArea;
import com.fr.report.cell.cellattr.highlight.HighlightAction; import com.fr.report.cell.cellattr.highlight.HighlightAction;
import com.fr.report.cell.cellattr.highlight.WidgetHighlightAction; import com.fr.report.cell.cellattr.highlight.WidgetHighlightAction;
import javax.swing.*; import javax.swing.*;
import java.awt.Dimension;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
@ -29,7 +27,6 @@ import java.awt.event.ActionListener;
public class WidgetHighlightPane extends ConditionAttrSingleConditionPane<HighlightAction> { public class WidgetHighlightPane extends ConditionAttrSingleConditionPane<HighlightAction> {
private static final int DIALOG_WIDTH = 700; private static final int DIALOG_WIDTH = 700;
private static final int DIALOG_HEIGHT = 400; private static final int DIALOG_HEIGHT = 400;
private static final Dimension WINDOW_CUSTOM_SIZE = new Dimension(720, 600);
private Widget widget; private Widget widget;
private UIComboBox box; private UIComboBox box;
@ -48,7 +45,8 @@ public class WidgetHighlightPane extends ConditionAttrSingleConditionPane<Highli
} }
}; };
widgetPane.populate(widget); widgetPane.populate(widget);
BasicDialog dialog = widgetPane.showWindowWithCustomSize(SwingUtilities.getWindowAncestor(conditionAttributesPane), null, WINDOW_CUSTOM_SIZE); BasicDialog dialog = widgetPane.showWindow(
SwingUtilities.getWindowAncestor(conditionAttributesPane));
dialog.addDialogActionListener(new DialogActionAdapter() { dialog.addDialogActionListener(new DialogActionAdapter() {
public void doOk() { public void doOk() {
widget = widgetPane.update(); widget = widgetPane.update();

2
designer-realize/src/main/java/com/fr/design/mainframe/ReportComponentComposite.java

@ -35,7 +35,7 @@ public class ReportComponentComposite extends JComponent implements RemoveListen
private static final int MAX = 400; private static final int MAX = 400;
private static final int HUND = 100; private static final int HUND = 100;
private static final int MIN = 10; private static final int MIN = 10;
private static final int DIR = 15; private static final int DIR = 10;
private JWorkBook parent; private JWorkBook parent;
private UIModeControlContainer parentContainer = null; private UIModeControlContainer parentContainer = null;

2
designer-realize/src/main/java/com/fr/design/mainframe/form/FormReportComponentComposite.java

@ -35,7 +35,7 @@ public class FormReportComponentComposite extends JComponent implements TargetMo
private static final int MAX = 400; private static final int MAX = 400;
private static final int HUND = 100; private static final int HUND = 100;
private static final int MIN = 10; private static final int MIN = 10;
private static final int DIR = 15; private static final int DIR = 10;
private static final double MIN_TIME = 0.4; private static final double MIN_TIME = 0.4;
public FormElementCaseDesigner elementCaseDesigner; public FormElementCaseDesigner elementCaseDesigner;
private BaseJForm jForm; private BaseJForm jForm;

Loading…
Cancel
Save