* commit '041918a62e23e9dfab0be955c03d726333b23422': (862 commits) 1 1 1 1 REPORT-5661 mac设计器打开最近的模板,提示模板不存在 REPORT-5661 区分mac和windows 优先处理内存释放问题 REPORT-5661 mac设计器打开最近的模板,提示模板不存在 格式化JavaScript代码+登录接口 REPORT-5668 单元格元素与悬浮元素图表配置问题 REPORT-5700 设计器图标补充修改 REPORT-5262 alphafine 远程设计搜索模板速度慢 默认模板启动问题 REPORT-5668 单元格元素和悬浮元素编辑器频繁初始化导致的内存激增问题 a REPORT-4386 界面,超链-邮件,编辑框内容输入后显示不全 REPORT-5692 [9.0三轮回归] 查询按钮改名字后,不会立即在设计器改变名字 REPORT-5692 [9.0三轮回归] 查询按钮改名字后,不会立即在设计器改变名字 REPORT-5134 设计器单元格里插入控件后,复制粘贴,显示null REPORT-5097 9.0,切换到本地其他目录,点击帮助-产品演示,不需要切换目录的提示 暂时先不改 ...master
@ -1,44 +0,0 @@ |
|||||||
<?xml version="1.0" encoding="UTF-8"?> |
|
||||||
<module type="JAVA_MODULE" version="4"> |
|
||||||
<component name="NewModuleRootManager" inherit-compiler-output="true"> |
|
||||||
<exclude-output /> |
|
||||||
<content url="file://$MODULE_DIR$"> |
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" /> |
|
||||||
</content> |
|
||||||
<orderEntry type="inheritedJdk" /> |
|
||||||
<orderEntry type="sourceFolder" forTests="false" /> |
|
||||||
<orderEntry type="module" module-name="designer_base" /> |
|
||||||
<orderEntry type="module" module-name="designer_form" /> |
|
||||||
<orderEntry type="module" module-name="designer_chart" /> |
|
||||||
<orderEntry type="module" module-name="designer_chart" /> |
|
||||||
<orderEntry type="module" module-name="designer_base" /> |
|
||||||
<orderEntry type="module" module-name="designer_form" /> |
|
||||||
<orderEntry type="module" module-name="base" /> |
|
||||||
<orderEntry type="module" module-name="base-basic" /> |
|
||||||
<orderEntry type="module" module-name="base-calculate" /> |
|
||||||
<orderEntry type="module" module-name="base-data" /> |
|
||||||
<orderEntry type="module" module-name="base-file" /> |
|
||||||
<orderEntry type="module" module-name="base-performance" /> |
|
||||||
<orderEntry type="module" module-name="base-plugin-engine" /> |
|
||||||
<orderEntry type="module" module-name="base-stable" /> |
|
||||||
<orderEntry type="module" module-name="chart-base" /> |
|
||||||
<orderEntry type="module" module-name="chart-chartattr" /> |
|
||||||
<orderEntry type="module" module-name="chart-chartdata" /> |
|
||||||
<orderEntry type="module" module-name="chart-chartglyph" /> |
|
||||||
<orderEntry type="module" module-name="chart-web" /> |
|
||||||
<orderEntry type="module" module-name="engine" /> |
|
||||||
<orderEntry type="module" module-name="engine-cross" /> |
|
||||||
<orderEntry type="module" module-name="engine-enhancement" /> |
|
||||||
<orderEntry type="module" module-name="engine-page" /> |
|
||||||
<orderEntry type="module" module-name="engine-remote" /> |
|
||||||
<orderEntry type="module" module-name="engine-view" /> |
|
||||||
<orderEntry type="module" module-name="engine-write" /> |
|
||||||
<orderEntry type="module" module-name="fmobile" /> |
|
||||||
<orderEntry type="module" module-name="form" /> |
|
||||||
<orderEntry type="module" module-name="fsbakrestore" /> |
|
||||||
<orderEntry type="module" module-name="fschedule" /> |
|
||||||
<orderEntry type="module" module-name="fservice" /> |
|
||||||
<orderEntry type="module" module-name="fsmonitor" /> |
|
||||||
<orderEntry type="library" name="lib" level="project" /> |
|
||||||
</component> |
|
||||||
</module> |
|
@ -0,0 +1,35 @@ |
|||||||
|
/* |
||||||
|
* Copyright(c) 2001-2010, FineReport Inc, All Rights Reserved. |
||||||
|
*/ |
||||||
|
package com.fr.design.actions.cell; |
||||||
|
|
||||||
|
import com.fr.base.BaseUtils; |
||||||
|
import com.fr.design.actions.UpdateAction; |
||||||
|
import com.fr.design.mainframe.EastRegionContainerPane; |
||||||
|
import com.fr.design.menu.KeySetUtils; |
||||||
|
|
||||||
|
import java.awt.event.ActionEvent; |
||||||
|
|
||||||
|
/** |
||||||
|
* Condition Attributes. |
||||||
|
*/ |
||||||
|
public class ConditionAttributesAction extends UpdateAction { |
||||||
|
public ConditionAttributesAction() { |
||||||
|
this.setMenuKeySet(KeySetUtils.CONDITION_ATTR); |
||||||
|
this.setName(getMenuKeySet().getMenuKeySetName()); |
||||||
|
this.setMnemonic(getMenuKeySet().getMnemonic()); |
||||||
|
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_format/highlight.png")); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void actionPerformed(ActionEvent e) { |
||||||
|
EastRegionContainerPane.getInstance().switchTabTo(EastRegionContainerPane.KEY_CONDITION_ATTR); |
||||||
|
EastRegionContainerPane.getInstance().setWindow2PreferWidth(); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void update() { |
||||||
|
super.update(); |
||||||
|
this.setEnabled(EastRegionContainerPane.getInstance().isConditionAttrPaneEnabled()); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,30 @@ |
|||||||
|
/* |
||||||
|
* Copyright(c) 2001-2010, FineReport Inc, All Rights Reserved. |
||||||
|
*/ |
||||||
|
package com.fr.design.actions.edit; |
||||||
|
|
||||||
|
import com.fr.base.BaseUtils; |
||||||
|
import com.fr.design.actions.UpdateAction; |
||||||
|
import com.fr.design.mainframe.EastRegionContainerPane; |
||||||
|
import com.fr.design.menu.KeySetUtils; |
||||||
|
|
||||||
|
import java.awt.event.ActionEvent; |
||||||
|
|
||||||
|
/** |
||||||
|
* HyperlinkAction. |
||||||
|
*/ |
||||||
|
public class HyperlinkAction extends UpdateAction { |
||||||
|
|
||||||
|
public HyperlinkAction() { |
||||||
|
this.setMenuKeySet(KeySetUtils.HYPER_LINK); |
||||||
|
this.setName(getMenuKeySet().getMenuKeySetName()); |
||||||
|
this.setMnemonic(getMenuKeySet().getMnemonic()); |
||||||
|
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_insert/hyperLink.png")); |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public void actionPerformed(ActionEvent e) { |
||||||
|
EastRegionContainerPane.getInstance().switchTabTo(EastRegionContainerPane.KEY_HYPERLINK); |
||||||
|
EastRegionContainerPane.getInstance().setWindow2PreferWidth(); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,27 @@ |
|||||||
|
package com.fr.design.mainframe; |
||||||
|
|
||||||
|
import com.fr.design.gui.frpane.HyperlinkGroupPaneActionProvider; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by plough on 2017/9/4. |
||||||
|
*/ |
||||||
|
public class ReportHyperlinkGroupPaneNoPop extends ReportHyperlinkGroupPane{ |
||||||
|
private static ReportHyperlinkGroupPaneNoPop singleton; |
||||||
|
|
||||||
|
private ReportHyperlinkGroupPaneNoPop(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) { |
||||||
|
super(hyperlinkGroupPaneActionProvider); |
||||||
|
} |
||||||
|
|
||||||
|
public static ReportHyperlinkGroupPaneNoPop getInstance(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) { |
||||||
|
if (singleton == null) { |
||||||
|
singleton = new ReportHyperlinkGroupPaneNoPop(hyperlinkGroupPaneActionProvider); |
||||||
|
} |
||||||
|
singleton.refreshPane(); |
||||||
|
return singleton; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
protected boolean isNewStyle() { |
||||||
|
return false; |
||||||
|
} |
||||||
|
} |
After Width: | Height: | Size: 738 B |
After Width: | Height: | Size: 618 B |
After Width: | Height: | Size: 303 B |
After Width: | Height: | Size: 547 B |
After Width: | Height: | Size: 323 B |
After Width: | Height: | Size: 371 B |
After Width: | Height: | Size: 19 KiB |
Before Width: | Height: | Size: 503 B After Width: | Height: | Size: 461 B |
After Width: | Height: | Size: 761 B |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 9.3 KiB |
After Width: | Height: | Size: 13 KiB |
After Width: | Height: | Size: 331 KiB |
After Width: | Height: | Size: 528 B |
After Width: | Height: | Size: 488 B |
After Width: | Height: | Size: 279 B |
After Width: | Height: | Size: 430 B |
After Width: | Height: | Size: 281 B |
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 299 B |
After Width: | Height: | Size: 539 B |
@ -1,37 +0,0 @@ |
|||||||
package com.fr.design.mainframe.alphafine.preview; |
|
||||||
|
|
||||||
|
|
||||||
import com.fr.design.gui.ilable.UILabel; |
|
||||||
import com.fr.design.mainframe.alphafine.AlphaFineConstants; |
|
||||||
import com.fr.general.IOUtils; |
|
||||||
import com.fr.general.Inter; |
|
||||||
|
|
||||||
import javax.swing.*; |
|
||||||
import java.awt.*; |
|
||||||
|
|
||||||
|
|
||||||
/** |
|
||||||
* Created by XiaXiang on 2017/5/5. |
|
||||||
*/ |
|
||||||
public class ActionPreviewPane extends JPanel { |
|
||||||
private static final Font NAME = new Font("Song_TypeFace", 0, 14); |
|
||||||
|
|
||||||
public ActionPreviewPane() { |
|
||||||
setLayout(new BorderLayout()); |
|
||||||
setBackground(null); |
|
||||||
setBorder(BorderFactory.createEmptyBorder(135, 0, 0, 0)); |
|
||||||
UILabel image = new UILabel(); |
|
||||||
image.setPreferredSize(new Dimension(150, 111)); |
|
||||||
image.setHorizontalAlignment(SwingConstants.CENTER); |
|
||||||
image.setBorder(BorderFactory.createEmptyBorder(0, 0, 10, 0)); |
|
||||||
image.setIcon(IOUtils.readIcon("/com/fr/design/mainframe/alphafine/images/noresult.png")); |
|
||||||
UILabel description = new UILabel(Inter.getLocText("FR-Designer_NoResult")); |
|
||||||
description.setForeground(AlphaFineConstants.MEDIUM_GRAY); |
|
||||||
description.setFont(NAME); |
|
||||||
description.setBorder(BorderFactory.createEmptyBorder(10, 0, 10, 0)); |
|
||||||
description.setHorizontalAlignment(SwingConstants.CENTER); |
|
||||||
this.add(image, BorderLayout.CENTER); |
|
||||||
this.add(description, BorderLayout.SOUTH); |
|
||||||
} |
|
||||||
|
|
||||||
} |
|
@ -0,0 +1,32 @@ |
|||||||
|
package com.fr.design.mainframe.alphafine.preview; |
||||||
|
|
||||||
|
import com.bulenkov.iconloader.IconLoader; |
||||||
|
import com.fr.design.gui.ilable.UILabel; |
||||||
|
import com.fr.design.mainframe.alphafine.AlphaFineConstants; |
||||||
|
import com.fr.general.FRFont; |
||||||
|
|
||||||
|
import javax.swing.*; |
||||||
|
import java.awt.*; |
||||||
|
|
||||||
|
/** |
||||||
|
* Created by XiaXiang on 2017/8/14. |
||||||
|
*/ |
||||||
|
public class NoResultPane extends JPanel { |
||||||
|
public NoResultPane(String title, String iconUrl) { |
||||||
|
setLayout(new BorderLayout()); |
||||||
|
setBackground(Color.white); |
||||||
|
setPreferredSize(new Dimension(AlphaFineConstants.LEFT_WIDTH, AlphaFineConstants.CONTENT_HEIGHT)); |
||||||
|
UILabel image = new UILabel(); |
||||||
|
image.setPreferredSize(new Dimension(150, 111)); |
||||||
|
image.setHorizontalAlignment(SwingConstants.CENTER); |
||||||
|
image.setIcon(IconLoader.getIcon(iconUrl)); |
||||||
|
image.setBorder(BorderFactory.createEmptyBorder(100, 0, 0, 0)); |
||||||
|
UILabel description = new UILabel(title); |
||||||
|
description.setForeground(AlphaFineConstants.MEDIUM_GRAY); |
||||||
|
description.setFont(FRFont.getInstance("SimSun", Font.PLAIN, 14)); |
||||||
|
description.setBorder(BorderFactory.createEmptyBorder(0, 0, 135, 0)); |
||||||
|
description.setHorizontalAlignment(SwingConstants.CENTER); |
||||||
|
add(image, BorderLayout.CENTER); |
||||||
|
add(description, BorderLayout.SOUTH); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,123 @@ |
|||||||
|
package com.fr.design.mainframe.cell; |
||||||
|
|
||||||
|
import com.fr.design.gui.iscrollbar.UIScrollBar; |
||||||
|
import com.fr.design.mainframe.CellElementPropertyPane; |
||||||
|
import com.fr.quickeditor.cellquick.layout.CellElementBarLayout; |
||||||
|
|
||||||
|
import javax.swing.BorderFactory; |
||||||
|
import javax.swing.JPanel; |
||||||
|
import java.awt.Container; |
||||||
|
import java.awt.Dimension; |
||||||
|
import java.awt.event.AdjustmentEvent; |
||||||
|
import java.awt.event.AdjustmentListener; |
||||||
|
import java.awt.event.MouseWheelEvent; |
||||||
|
import java.awt.event.MouseWheelListener; |
||||||
|
|
||||||
|
/** |
||||||
|
* 右侧单元格元素面板抽象类 |
||||||
|
* |
||||||
|
* @author yaoh.wu |
||||||
|
* @version 2017年7月25日 |
||||||
|
* @since 9.0 |
||||||
|
*/ |
||||||
|
public abstract class AbstractDSCellEditorPane extends JPanel { |
||||||
|
|
||||||
|
/** |
||||||
|
* 滚动条相关配置 |
||||||
|
*/ |
||||||
|
private static final int MAXVALUE = 100; |
||||||
|
private static final int TITLE_HEIGHT = 95; |
||||||
|
private static final int CONTENT_PANE_WIDTH_GAP = 3; |
||||||
|
private static final int SCROLLBAR_WIDTH = 7; |
||||||
|
private static final int MOUSE_WHEEL_SPEED = 5; |
||||||
|
private int maxHeight = 280; |
||||||
|
|
||||||
|
private JPanel leftContentPane; |
||||||
|
private UIScrollBar scrollBar; |
||||||
|
|
||||||
|
protected abstract JPanel createContentPane(); |
||||||
|
|
||||||
|
public abstract String getIconPath(); |
||||||
|
|
||||||
|
public abstract String title4PopupWindow(); |
||||||
|
|
||||||
|
/** |
||||||
|
* 从面板拿数据保存 |
||||||
|
*/ |
||||||
|
public abstract void update(); |
||||||
|
|
||||||
|
/** |
||||||
|
* 更新面板数据 |
||||||
|
*/ |
||||||
|
public abstract void populate(); |
||||||
|
|
||||||
|
protected void createScrollPane() { |
||||||
|
leftContentPane = this.createContentPane(); |
||||||
|
this.prepareScrollBar(); |
||||||
|
leftContentPane.setBorder(BorderFactory.createMatteBorder(10, 10, 0, 0, this.getBackground())); |
||||||
|
|
||||||
|
this.setLayout(new CellElementBarLayout(leftContentPane) { |
||||||
|
@Override |
||||||
|
public void layoutContainer(Container parent) { |
||||||
|
maxHeight = CellElementPropertyPane.getInstance().getHeight() - TITLE_HEIGHT; |
||||||
|
int beginY; |
||||||
|
if ((MAXVALUE - scrollBar.getVisibleAmount()) == 0) { |
||||||
|
beginY = 0; |
||||||
|
} else { |
||||||
|
int preferredHeight = leftContentPane.getPreferredSize().height; |
||||||
|
int value = scrollBar.getValue(); |
||||||
|
beginY = value * (preferredHeight - maxHeight) / (MAXVALUE - scrollBar.getVisibleAmount()); |
||||||
|
} |
||||||
|
int width = parent.getWidth(); |
||||||
|
int height = parent.getHeight(); |
||||||
|
if (leftContentPane.getPreferredSize().height > maxHeight) { |
||||||
|
leftContentPane.setBounds(0, -beginY, width - SCROLLBAR_WIDTH - CONTENT_PANE_WIDTH_GAP, height + beginY); |
||||||
|
scrollBar.setBounds(width - SCROLLBAR_WIDTH - CONTENT_PANE_WIDTH_GAP, 0, SCROLLBAR_WIDTH + CONTENT_PANE_WIDTH_GAP, height); |
||||||
|
} else { |
||||||
|
leftContentPane.setBounds(0, 0, width - SCROLLBAR_WIDTH - CONTENT_PANE_WIDTH_GAP, height); |
||||||
|
} |
||||||
|
} |
||||||
|
}); |
||||||
|
this.add(scrollBar); |
||||||
|
this.add(leftContentPane); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
private void prepareScrollBar() { |
||||||
|
scrollBar = new UIScrollBar(UIScrollBar.VERTICAL) { |
||||||
|
@Override |
||||||
|
public int getVisibleAmount() { |
||||||
|
int preferredHeight = leftContentPane.getPreferredSize().height; |
||||||
|
int e = MAXVALUE * (maxHeight) / preferredHeight; |
||||||
|
setVisibleAmount(e); |
||||||
|
return e; |
||||||
|
} |
||||||
|
|
||||||
|
@Override |
||||||
|
public int getMaximum() { |
||||||
|
return MAXVALUE; |
||||||
|
} |
||||||
|
}; |
||||||
|
|
||||||
|
scrollBar.addAdjustmentListener(new AdjustmentListener() { |
||||||
|
|
||||||
|
@Override |
||||||
|
public void adjustmentValueChanged(AdjustmentEvent e) { |
||||||
|
doLayout(); |
||||||
|
} |
||||||
|
}); |
||||||
|
this.addMouseWheelListener(new MouseWheelListener() { |
||||||
|
|
||||||
|
@Override |
||||||
|
public void mouseWheelMoved(MouseWheelEvent e) { |
||||||
|
int value = scrollBar.getValue(); |
||||||
|
value += MOUSE_WHEEL_SPEED * e.getWheelRotation(); |
||||||
|
scrollBar.setValue(value); |
||||||
|
doLayout(); |
||||||
|
} |
||||||
|
}); |
||||||
|
scrollBar.setPreferredSize(new Dimension(SCROLLBAR_WIDTH + CONTENT_PANE_WIDTH_GAP, this.getHeight())); |
||||||
|
scrollBar.setBlockIncrement(SCROLLBAR_WIDTH + CONTENT_PANE_WIDTH_GAP); |
||||||
|
scrollBar.setBorder(BorderFactory.createMatteBorder(0, CONTENT_PANE_WIDTH_GAP, 0, 0, this.getBackground())); |
||||||
|
} |
||||||
|
} |
@ -1,28 +0,0 @@ |
|||||||
package com.fr.design.mainframe.cell; |
|
||||||
|
|
||||||
import com.fr.design.dialog.BasicPane; |
|
||||||
|
|
||||||
/** |
|
||||||
* 右侧单元格元素面板抽象类 |
|
||||||
* |
|
||||||
* @author yaoh.wu |
|
||||||
* @version 2017年7月25日 |
|
||||||
* @since 9.0 |
|
||||||
*/ |
|
||||||
public abstract class CellEditorPane extends BasicPane { |
|
||||||
|
|
||||||
public abstract String getIconPath(); |
|
||||||
|
|
||||||
public abstract String title4PopupWindow(); |
|
||||||
|
|
||||||
/** |
|
||||||
* 从面板拿数据保存 |
|
||||||
*/ |
|
||||||
public abstract void update(); |
|
||||||
|
|
||||||
/** |
|
||||||
* 更新面板数据 |
|
||||||
* |
|
||||||
*/ |
|
||||||
public abstract void populate(); |
|
||||||
} |
|