From dff8443a0c8ca8f6df4e98999a768945fd487a5e Mon Sep 17 00:00:00 2001 From: zhouping Date: Wed, 13 Jul 2016 21:13:47 +0800 Subject: [PATCH 01/21] =?UTF-8?q?=E4=B9=8B=E5=89=8D=E5=9B=A0=E4=B8=BA?= =?UTF-8?q?=E5=91=A8=E4=B8=89=E5=90=88master=E5=9B=9E=E9=80=80=E7=9A=84?= =?UTF-8?q?=EF=BC=8C=E5=8F=91=E5=B8=83=E5=90=8E=E5=86=8D=E9=87=8D=E6=96=B0?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E4=B8=80=E4=B8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../adapters/layout/FRFitLayoutAdapter.java | 11 +- .../designer/beans/models/SelectionModel.java | 7 + .../design/designer/creator/XChartEditor.java | 101 ++++++++++--- .../fr/design/designer/creator/XCreator.java | 8 + .../designer/creator/XLayoutContainer.java | 26 ++++ .../creator/cardlayout/XCardAddButton.java | 8 + .../creator/cardlayout/XCardSwitchButton.java | 5 + .../creator/cardlayout/XWCardLayout.java | 5 + .../cardlayout/XWCardMainBorderLayout.java | 91 +++++++++++- .../creator/cardlayout/XWCardTagLayout.java | 6 + .../creator/cardlayout/XWCardTitleLayout.java | 6 + .../creator/cardlayout/XWTabFitLayout.java | 7 +- .../mainframe/EditingMouseListener.java | 138 +++++++++++++++--- 13 files changed, 368 insertions(+), 51 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java index 1e052ba6d..840d3a7db 100644 --- a/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java +++ b/designer_form/src/com/fr/design/designer/beans/adapters/layout/FRFitLayoutAdapter.java @@ -14,6 +14,7 @@ import com.fr.design.designer.beans.ConstraintsGroupModel; import com.fr.design.designer.beans.HoverPainter; import com.fr.design.designer.beans.painters.FRFitLayoutPainter; import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XWFitLayout; import com.fr.design.designer.creator.cardlayout.XWCardLayout; @@ -163,7 +164,7 @@ public class FRFitLayoutAdapter extends AbstractLayoutAdapter { return false; } //如果当前处于边缘地带, 那么就把他贴到父容器上 - matchEdge(x, y); + boolean isMatchEdge = matchEdge(x, y); int componentHeight = comp.getHeight(); int componentWidth = comp.getWidth(); @@ -171,7 +172,13 @@ public class FRFitLayoutAdapter extends AbstractLayoutAdapter { int upHeight = (int) (componentHeight * TOP_HALF) + comp.getY(); //下半部分高度 int downHeight = (int) (componentHeight * BOTTOM_HALF) + comp.getY(); - + + //布局控件要先判断是不是可编辑 + XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer((XCreator)comp).getTopLayout(); + if(topLayout != null && !isMatchEdge && !topLayout.isEditable()){ + return false; + } + if (isCrossPointArea(comp, x, y)) { return canAcceptWhileCrossPoint(comp, x, y); } diff --git a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java index fd2b48a73..834b28d74 100644 --- a/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java +++ b/designer_form/src/com/fr/design/designer/beans/models/SelectionModel.java @@ -66,6 +66,13 @@ public class SelectionModel { // 获取e所在的组件 XCreator comp = designer.getComponentAt(e); + + //布局组件的顶层布局如不可编辑,要获取其顶层布局 + XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer(comp).getTopLayout(); + if(topLayout != null && !topLayout.isEditable()){ + comp = topLayout; + } + // 如果父层是scale和title两个专属容器,返回其父层,组件本身是不让被选中的 if (comp != designer.getRootComponent() && comp != designer.getParaComponent()) { XCreator parentContainer = (XCreator) comp.getParent(); diff --git a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java index 2087dda10..e477b7d7a 100644 --- a/designer_form/src/com/fr/design/designer/creator/XChartEditor.java +++ b/designer_form/src/com/fr/design/designer/creator/XChartEditor.java @@ -1,20 +1,22 @@ package com.fr.design.designer.creator; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Graphics; +import java.awt.*; +import java.awt.event.MouseEvent; +import java.awt.image.BufferedImage; import java.beans.IntrospectionException; -import javax.swing.BorderFactory; -import javax.swing.JComponent; -import javax.swing.SwingUtilities; +import javax.swing.*; +import com.fr.base.BaseUtils; import com.fr.base.chart.BaseChart; import com.fr.base.chart.BaseChartCollection; +import com.fr.design.designer.beans.AdapterBus; +import com.fr.design.designer.beans.ComponentAdapter; +import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.gui.chart.BaseChartPropertyPane; import com.fr.design.gui.chart.MiddleChartComponent; -import com.fr.design.mainframe.BaseJForm; -import com.fr.design.mainframe.FormDesigner; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.mainframe.*; import com.fr.design.mainframe.widget.editors.WLayoutBorderStyleEditor; import com.fr.design.mainframe.widget.renderer.LayoutBorderStyleRenderer; import com.fr.design.module.DesignModuleFactory; @@ -41,6 +43,9 @@ public class XChartEditor extends XBorderStyleWidgetCreator { //marro:无奈的属性,暂时想不出好办法 private boolean isRefreshing = false; + private boolean isEditing = false; + private JPanel coverPanel; + public XChartEditor(BaseChartEditor editor) { this(editor, new Dimension(250, 150)); } @@ -142,17 +147,22 @@ public class XChartEditor extends XBorderStyleWidgetCreator { } }); - final BaseChartPropertyPane propertyPane = DesignModuleFactory.getChartWidgetPropertyPane(formDesigner); - SwingUtilities.invokeLater(new Runnable() { - @Override - public void run() { - if (getDesignerEditor().getEditorTarget() != null) { - propertyPane.setSupportCellData(true); - propertyPane.populateChartPropertyPane(getDesignerEditorTarget().update(), formDesigner); + if (isEditing){ + final BaseChartPropertyPane propertyPane = DesignModuleFactory.getChartPropertyPane(); + SwingUtilities.invokeLater(new Runnable() { + @Override + public void run() { + if (getDesignerEditor().getEditorTarget() != null) { + propertyPane.setSupportCellData(true); + propertyPane.populateChartPropertyPane(getDesignerEditorTarget().update(), formDesigner); + } } - } - }); - return (JComponent)propertyPane; + }); + return (JComponent)propertyPane; + } + else{ + return (JComponent)DesignModuleFactory.getWidgetPropertyPane(formDesigner); + } } private MiddleChartComponent getDesignerEditorTarget() { @@ -167,8 +177,8 @@ public class XChartEditor extends XBorderStyleWidgetCreator { * 渲染Painter */ public void paint(Graphics g) { - super.paint(g); designerEditor.paintEditor(g, this.getSize()); + super.paint(g); } /** @@ -180,6 +190,27 @@ public class XChartEditor extends XBorderStyleWidgetCreator { return new Dimension(250, 100); } + /** + * 响应点击事件 + * + * @param editingMouseListener 鼠标点击,位置处理器 + * @param e 鼠标点击事件 + */ + public void respondClick(EditingMouseListener editingMouseListener,MouseEvent e){ + FormDesigner designer = editingMouseListener.getDesigner(); + SelectionModel selectionModel = editingMouseListener.getSelectionModel(); + isEditing = e.getClickCount() == 2 || designer.getCursor().getType() == Cursor.HAND_CURSOR; + displayCoverPane(!isEditing); + selectionModel.selectACreatorAtMouseEvent(e); + + if (editingMouseListener.stopEditing()) { + if (this != (XCreator)designer.getRootComponent()) { + ComponentAdapter adapter = AdapterBus.getComponentAdapter(designer, this); + editingMouseListener.startEditing(this, isEditing ? adapter.getDesignerEditor() : null, adapter); + } + } + } + @Override protected JComponent initEditor() { if (designerEditor == null) { @@ -198,6 +229,36 @@ public class XChartEditor extends XBorderStyleWidgetCreator { }); } } - return null; + + if (editor == null) { + setBorder(DEFALUTBORDER); + editor = new JPanel(); + editor.setBackground(null); + editor.setLayout(null); + editor.setOpaque(false); + + coverPanel = new CoverReportPane(); + coverPanel.setPreferredSize(this.getPreferredSize()); + coverPanel.setBounds(this.getBounds()); + + editor.add(coverPanel); + coverPanel.setVisible(false); + } + return editor; + } + + /** + * 是否展现覆盖的pane + * @param display 是否 + */ + public void displayCoverPane(boolean display){ + coverPanel.setVisible(display); + coverPanel.setPreferredSize(editor.getPreferredSize()); + coverPanel.setBounds(editor.getBounds()); + editor.repaint(); + } + + public JComponent getCoverPane(){ + return coverPanel; } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/XCreator.java b/designer_form/src/com/fr/design/designer/creator/XCreator.java index 518e9c27a..c9b05f9b6 100644 --- a/designer_form/src/com/fr/design/designer/creator/XCreator.java +++ b/designer_form/src/com/fr/design/designer/creator/XCreator.java @@ -105,6 +105,14 @@ public abstract class XCreator extends JPanel implements XComponent, XCreatorToo public void backupParent() { setBackupParent(XCreatorUtils.getParentXLayoutContainer(this)); } + + /** + * 获取当前布局控件的顶层布局框架,如tab布局、绝对布局 + * @return 封装的顶层布局 + */ + public XLayoutContainer getTopLayout(){ + return null; + } /** * 获取当前XCreator的一个封装父容器 diff --git a/designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java b/designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java index fec4899a8..ea27490fa 100644 --- a/designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java +++ b/designer_form/src/com/fr/design/designer/creator/XLayoutContainer.java @@ -41,6 +41,16 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme protected boolean isRefreshing; protected int default_Length = 5; // 取指定点坐在的组件,默认为5保证取四侧相邻的组件时x、y在组件内非边框上 + /** + * 布局是否可编辑,不可则显示编辑层 + */ + protected boolean editable = false; + //鼠标移动到布局画出编辑层 + protected boolean isMouseEnter = false; + public void setMouseEnter(boolean mouseEnter) { + isMouseEnter = mouseEnter; + } + public XLayoutContainer(WLayout widget, Dimension initSize) { super(widget, initSize); this.addContainerListener(this); @@ -446,4 +456,20 @@ public abstract class XLayoutContainer extends XBorderStyleWidgetCreator impleme public void setBackground(Background background){ } + + /** + * 布局是否可编辑,不可则显示编辑蒙层 + * @return 可否编辑 + */ + public boolean isEditable(){ + return this.editable; + } + + /** + * 设置布局是否可编辑,不可则显示编辑蒙层 + * @param isEditable 可否编辑 + */ + public void setEditable(boolean isEditable){ + this.editable = isEditable; + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java index 652331d1f..0c459b61c 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardAddButton.java @@ -12,6 +12,7 @@ import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.creator.XButton; +import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.mainframe.EditingMouseListener; import com.fr.design.mainframe.FormDesigner; import com.fr.design.mainframe.FormHierarchyTreePane; @@ -149,6 +150,8 @@ public class XCardAddButton extends XButton{ XCardSwitchButton showButton = new XCardSwitchButton(titleButton,dimension,cardLayout,tagLayout); titleButton.setCustomStyle(true); titleButton.setShowButton(true); + showButton.setBackupParent(tagLayout); + this.tagLayout.setCurrentCard(titleButton); this.tagLayout.setTabFitIndex(index); @@ -180,4 +183,9 @@ public class XCardAddButton extends XButton{ } return newTextName; } + + @Override + public XLayoutContainer getTopLayout() { + return this.getBackupParent().getTopLayout(); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java index c10287d00..c75fc2542 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XCardSwitchButton.java @@ -292,5 +292,10 @@ public class XCardSwitchButton extends XButton { FormHierarchyTreePane.getInstance().refreshRoot(); selectionModel.setSelectedCreator(designer.getRootComponent()); } + + @Override + public XLayoutContainer getTopLayout() { + return this.getBackupParent().getTopLayout(); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java index 49eeb9211..621f4c5f5 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java @@ -367,4 +367,9 @@ public class XWCardLayout extends XLayoutContainer { mainLayout.setBorder(border); } } + + @Override + public XLayoutContainer getTopLayout() { + return this.getBackupParent().getTopLayout(); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java index 003bde4a4..b9039b1d6 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java @@ -3,18 +3,24 @@ */ package com.fr.design.designer.creator.cardlayout; -import java.awt.Color; -import java.awt.Component; -import java.awt.Dimension; +import java.awt.*; +import java.awt.event.MouseEvent; +import java.awt.image.BufferedImage; import java.util.ArrayList; - - - +import com.fr.design.designer.beans.AdapterBus; +import com.fr.design.designer.beans.ComponentAdapter; +import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XWBorderLayout; +import com.fr.design.icon.IconPathConstants; +import com.fr.design.mainframe.EditingMouseListener; +import com.fr.design.mainframe.FormDesigner; import com.fr.form.ui.container.WBorderLayout; import com.fr.form.ui.container.WAbsoluteLayout.BoundsWidget; import com.fr.form.ui.container.cardlayout.WCardMainBorderLayout; +import com.fr.general.IOUtils; +import com.fr.general.Inter; /** * card布局主体框架 @@ -31,6 +37,9 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ private static final int LAYOUT_INDEX = 0; private static final int TITLE_STYLE = 2; private static final int NORMAL_STYLE = 1; + + private static final int EDIT_BTN_WIDTH = 60; + private static final int EDIT_BTN_HEIGHT = 24; /** * 构造函数 @@ -124,7 +133,7 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ /** * 重新调整子组件的宽度 - * @param 宽度 + * @param width 宽度 */ public void recalculateChildWidth(int width){ ArrayList childrenList = this.getTargetChildrenList(); @@ -188,4 +197,72 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ } } + + public void paint(Graphics g) { + super.paint(g); + //如果鼠标移动到布局内且布局不可编辑,画出编辑蒙层 + if (isMouseEnter && !editable) { + int x = 0; + int y = 0; + int w = getWidth(); + int h = getHeight(); + + Graphics2D g2d = (Graphics2D) g; + Composite oldComposite = g2d.getComposite(); + //画白色的编辑层 + g2d.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 60 / 100.0F)); + g2d.setColor(Color.WHITE); + g2d.fillRect(x, y, w, h); + //画编辑按钮所在框 + g2d.setComposite(oldComposite); + g2d.setColor(new Color(176, 196, 222)); + g2d.fillRect((x + w / 2 - EDIT_BTN_WIDTH / 2), (y + h / 2 - EDIT_BTN_HEIGHT / 2), EDIT_BTN_WIDTH, EDIT_BTN_HEIGHT); + //画编辑按钮图标 + BufferedImage image = IOUtils.readImage(IconPathConstants.TD_EDIT_ICON_PATH); + g2d.drawImage( + image, + (x + w / 2 - 23), + (y + h / 2 - image.getHeight() / 2), + image.getWidth(), + image.getHeight(), + null, + this + ); + g2d.setColor(Color.BLACK); + //画编辑文字 + g2d.drawString(Inter.getLocText("Edit"), x + w / 2 - 2, y + h / 2 + 5); + } + } + + /** + * 响应点击事件 + * + * @param editingMouseListener 鼠标点击,位置处理器 + * @param e 鼠标点击事件 + */ + public void respondClick(EditingMouseListener editingMouseListener,MouseEvent e){ + FormDesigner designer = editingMouseListener.getDesigner(); + SelectionModel selectionModel = editingMouseListener.getSelectionModel(); + boolean isEditing = designer.getCursor().getType() == Cursor.HAND_CURSOR || e.getClickCount() == 2; + setEditable(isEditing); + + selectionModel.selectACreatorAtMouseEvent(e); + designer.repaint(); + + if (editingMouseListener.stopEditing()) { + if (this != designer.getRootComponent()) { + ComponentAdapter adapter = AdapterBus.getComponentAdapter(designer, this); + editingMouseListener.startEditing(this, isEditing ? adapter.getDesignerEditor() : null, adapter); + } + } + } + + /** + * XWCardMainBorderLayout是card布局主体框架,tab的顶层布局 + * @return + */ + @Override + public XLayoutContainer getTopLayout() { + return this; + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java index bd844b53e..e40a7ca87 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTagLayout.java @@ -13,6 +13,7 @@ import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.creator.XCreatorUtils; +import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XWHorizontalBoxLayout; import com.fr.design.designer.creator.XWidgetCreator; import com.fr.design.mainframe.EditingMouseListener; @@ -214,4 +215,9 @@ public class XWCardTagLayout extends XWHorizontalBoxLayout { } } } + + @Override + public XLayoutContainer getTopLayout() { + return this.getBackupParent().getTopLayout(); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTitleLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTitleLayout.java index 8f83a1fab..1514ed403 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTitleLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardTitleLayout.java @@ -12,6 +12,7 @@ import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.creator.XCreatorUtils; +import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XWBorderLayout; import com.fr.design.designer.creator.XWidgetCreator; import com.fr.design.mainframe.EditingMouseListener; @@ -146,4 +147,9 @@ public class XWCardTitleLayout extends XWBorderLayout { } } } + + @Override + public XLayoutContainer getTopLayout() { + return this.getBackupParent().getTopLayout(); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java index d8a5e0b43..b247d0bfc 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWTabFitLayout.java @@ -188,7 +188,7 @@ public class XWTabFitLayout extends XWFitLayout { /** * 该布局需要隐藏,无需对边框进行操作 - * @param 边框 + * @param border 边框 * */ public void setBorder(Border border) { @@ -362,4 +362,9 @@ public class XWTabFitLayout extends XWFitLayout { this.hasCalGap = true; } + + @Override + public XLayoutContainer getTopLayout() { + return this.getBackupParent().getTopLayout(); + } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java b/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java index 00dd905b1..e66b37552 100644 --- a/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java +++ b/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java @@ -18,12 +18,7 @@ import com.fr.design.designer.beans.location.Direction; import com.fr.design.designer.beans.location.Location; import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.beans.models.StateModel; -import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XCreatorUtils; -import com.fr.design.designer.creator.XEditorHolder; -import com.fr.design.designer.creator.XElementCase; -import com.fr.design.designer.creator.XLayoutContainer; -import com.fr.design.designer.creator.XWFitLayout; +import com.fr.design.designer.creator.*; import com.fr.design.form.util.XCreatorConstants; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.xpane.ToolTipEditor; @@ -45,6 +40,10 @@ public class EditingMouseListener extends MouseInputAdapter { * 普通模式下对应的model */ private StateModel stateModel; + + + private XLayoutContainer xTopLayoutContainer; + private XLayoutContainer clickTopLayout; /** * 获取表单设计器 @@ -84,10 +83,14 @@ public class EditingMouseListener extends MouseInputAdapter { private int minDragSize = 5; private int minMoveSize = 8; + + private static final int EDIT_BTN_WIDTH = 60; + private static final int EDIT_BTN_HEIGHT = 24; //报表块的编辑按钮不灵敏,范围扩大一点 private static final int GAP = 10; private XElementCase xElementCase; + private XChartEditor xChartEditor; private JWindow promptWindow = new JWindow(); @@ -244,6 +247,12 @@ public class EditingMouseListener extends MouseInputAdapter { */ public void mouseMoved(MouseEvent e) { XCreator component = designer.getComponentAt(e); + + setCoverPaneNotDisplay(); + + if(processTopLayoutMouseMove(component, e)){ + return; + } if (component instanceof XEditorHolder) { XEditorHolder xcreator = (XEditorHolder) component; Rectangle rect = xcreator.getBounds(); @@ -267,17 +276,15 @@ public class EditingMouseListener extends MouseInputAdapter { if (!BaseUtils.isAuthorityEditing()) { stateModel.setDirection(dir); } - if(xElementCase != null){ - xElementCase.displayCoverPane(false); - } + if (component.isReport()) { xElementCase = (XElementCase)component; UIButton button = (UIButton)xElementCase.getCoverPane().getComponent(0); if(designer.getCursor().getType() ==Cursor.HAND_CURSOR) { designer.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); } // component.getParent() 是报表块所在的XWTitleLayout - int minX = button.getX() + component.getX() + component.getParent().getX() - designer.getArea().getHorizontalValue(); - int minY = button.getY() + component.getY() + component.getParent().getY() + designer.getParaHeight() - designer.getArea().getVerticalValue(); + int minX = button.getX() + getParentPositionX(component, 0) - designer.getArea().getHorizontalValue(); + int minY = button.getY() + getParentPositionY(component, 0) - designer.getArea().getVerticalValue(); if(e.getX() + GAP > minX && e.getX() - GAP < minX + button.getWidth()){ if( e.getY() + GAP > minY && e.getY() - GAP < minY + button.getHeight()){ designer.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); @@ -285,16 +292,84 @@ public class EditingMouseListener extends MouseInputAdapter { } xElementCase.displayCoverPane(true); xElementCase.setDirections(Direction.TOP_BOTTOM_LEFT_RIGHT); + designer.repaint(); - } else { - if(xElementCase != null){ - xElementCase.displayCoverPane(false); - designer.repaint(); - } + return; } + + processChartEditorMouseMove(component, e); + + designer.repaint(); } - /** + private void setCoverPaneNotDisplay(){ + if (xElementCase != null){ + xElementCase.displayCoverPane(false); + } + if (xChartEditor != null){ + xChartEditor.displayCoverPane(false); + } + + if (xTopLayoutContainer != null) { + xTopLayoutContainer.setMouseEnter(false); + } + designer.repaint(); + } + + private boolean processTopLayoutMouseMove(XCreator component, MouseEvent e){ + XLayoutContainer parent = XCreatorUtils.getHotspotContainer(component).getTopLayout(); + if (parent != null){ + xTopLayoutContainer = parent; + xTopLayoutContainer.setMouseEnter(true); + designer.repaint(); + if(!xTopLayoutContainer.isEditable()) { + if (designer.getCursor().getType() == Cursor.HAND_CURSOR) { + designer.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + } + if (e.getX() > (parent.getX() + parent.getWidth() / 2 - EDIT_BTN_WIDTH / 2 - GAP) + && e.getX() < (parent.getX() + parent.getWidth() / 2 + EDIT_BTN_WIDTH / 2 + GAP)) { + if (e.getY() > (parent.getY() + parent.getHeight() / 2 - EDIT_BTN_HEIGHT / 2 - GAP) + && e.getY() < (parent.getY() + parent.getHeight() / 2 + EDIT_BTN_HEIGHT / 2 + GAP + designer.getParaHeight())) { + designer.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + } + } + return true; + } + } + return false; + } + + private void processChartEditorMouseMove(XCreator component, MouseEvent e){ + if (component instanceof XChartEditor) { + xChartEditor = (XChartEditor)component; + UIButton button = (UIButton)xChartEditor.getCoverPane().getComponent(0); + if(designer.getCursor().getType() ==Cursor.HAND_CURSOR) { + designer.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); + } + int minX = button.getX() + getParentPositionX(component, 0) - designer.getArea().getHorizontalValue(); + int minY = button.getY() + getParentPositionY(component, 0) - designer.getArea().getVerticalValue(); + if(e.getX() + GAP > minX && e.getX() - GAP < minX + button.getWidth()){ + if( e.getY() + GAP > minY && e.getY() - GAP < minY + button.getHeight()){ + designer.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); + } + } + xChartEditor.displayCoverPane(true); + xChartEditor.setDirections(Direction.TOP_BOTTOM_LEFT_RIGHT); + designer.repaint(); + } + } + + private int getParentPositionX(XCreator comp, int x){ + return comp.getParent() == null ? + x : getParentPositionX((XCreator)comp.getParent(), comp.getParent().getX() + x); + } + + private int getParentPositionY(XCreator comp, int y) { + return comp.getParent() == null ? + y : getParentPositionY((XCreator) comp.getParent(), comp.getParent().getY() + y); + } + + /** * 拖拽 * @param e 鼠标事件 */ @@ -342,6 +417,25 @@ public class EditingMouseListener extends MouseInputAdapter { designer.repaint(); } + private XCreator processTopLayoutMouseClick(XCreator creator){ + XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer(creator).getTopLayout(); + if(topLayout != null){ + if (clickTopLayout != null && clickTopLayout != topLayout){ + clickTopLayout.setEditable(false); + } + clickTopLayout = topLayout; + if(!topLayout.isEditable()) { + creator = topLayout; + } + } + else{ + if(clickTopLayout != null){ + clickTopLayout.setEditable(false); + } + } + + return creator; + } /** * 点击 * @param e 鼠标事件 @@ -351,6 +445,9 @@ public class EditingMouseListener extends MouseInputAdapter { return; } XCreator creator = designer.getComponentAt(e); + + creator = processTopLayoutMouseClick(creator); + if(creator != null){ creator.respondClick(this, e); } @@ -368,10 +465,9 @@ public class EditingMouseListener extends MouseInputAdapter { if (designer.getCursor().getType() != Cursor.DEFAULT_CURSOR) { designer.setCursor(Cursor.getDefaultCursor()); } - if (xElementCase != null){ - xElementCase.displayCoverPane(false); - designer.repaint(); - } + + setCoverPaneNotDisplay(); + cancelPromptWidgetForbidEnter(); } From 2d1e52a9def24550e9fa789a9ea25836b9512ad8 Mon Sep 17 00:00:00 2001 From: xiaohu Date: Thu, 14 Jul 2016 15:56:55 +0800 Subject: [PATCH 02/21] =?UTF-8?q?=E8=B6=85=E9=93=BE=E9=A1=BA=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ChartHyperPoplinkPane.java | 28 +++++++++++++++---- 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java b/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java index 308df92b2..676f2567a 100644 --- a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java +++ b/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java @@ -44,7 +44,22 @@ public class ChartHyperPoplinkPane extends BasicBeanPane { hyperEditPane = new ChartHyperEditPane(getChartParaType(), getValueEditorPane(), getValueEditorPane()); this.add(hyperEditPane, BorderLayout.CENTER); - ChartCollection cc = new ChartCollection(); + ChartCollection cc = createChartCollection(); + + chartComponent = new ChartComponent(); + chartComponent.setPreferredSize(new Dimension(220, 170));// �ڵ�Ԫ�񵯳�ʱ ��Ҫ������֤���Ա�Ĵ�С. + chartComponent.setSupportEdit(false); + chartComponent.populate(cc); + + this.add(chartComponent, BorderLayout.EAST); + + hyperEditPane.populate(cc); + + hyperEditPane.useChartComponent(chartComponent); + } + + private ChartCollection createChartCollection() { + ChartCollection cc = new ChartCollection(); Chart chart = ChartTypeManager.getFirstChart(); if (chart != null){ @@ -68,9 +83,11 @@ public class ChartHyperPoplinkPane extends BasicBeanPane { hyperEditPane.populate(cc); hyperEditPane.useChartComponent(chartComponent); - } - - protected int getChartParaType() { + + return cc; + } + + protected int getChartParaType() { return ParameterTableModel.CHART_NORMAL_USE; } @@ -99,8 +116,7 @@ public class ChartHyperPoplinkPane extends BasicBeanPane { BaseChartCollection cc = chartHyperlink.getChartCollection(); if (cc == null || cc.getChartCount() < 1) { - cc = new ChartCollection(); - cc.addChart(new Chart(ChartFactory.createBar2DPlot())); + cc = createChartCollection(); chartHyperlink.setChartCollection(cc); } From 6b64af1c3bbd8ab7e69bf9196a1a9a3f4ba92db5 Mon Sep 17 00:00:00 2001 From: xiaohu Date: Thu, 14 Jul 2016 16:20:40 +0800 Subject: [PATCH 03/21] update --- .../impl/ChartHyperPoplinkPane.java | 32 ++++++------------- 1 file changed, 10 insertions(+), 22 deletions(-) diff --git a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java b/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java index 676f2567a..252e0b751 100644 --- a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java +++ b/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java @@ -23,7 +23,7 @@ import com.fr.general.Inter; import java.awt.*; /** - * 类说明: 图表超链 -- 弹出 悬浮窗. + * 类说明: 图表超链 -- 弹出 悬浮窗. * @author kunsnat E-mail:kunsnat@gmail.com * @version 创建时间:2011-12-28 上午10:41:39 */ @@ -32,7 +32,7 @@ public class ChartHyperPoplinkPane extends BasicBeanPane { private UITextField itemNameTextField; private ChartHyperEditPane hyperEditPane; private ChartComponent chartComponent; - + public ChartHyperPoplinkPane() { this.setLayout(FRGUIPaneFactory.createM_BorderLayout()); @@ -43,18 +43,18 @@ public class ChartHyperPoplinkPane extends BasicBeanPane { hyperEditPane = new ChartHyperEditPane(getChartParaType(), getValueEditorPane(), getValueEditorPane()); this.add(hyperEditPane, BorderLayout.CENTER); - - ChartCollection cc = createChartCollection(); + + ChartCollection cc = createChartCollection(); chartComponent = new ChartComponent(); - chartComponent.setPreferredSize(new Dimension(220, 170));// �ڵ�Ԫ�񵯳�ʱ ��Ҫ������֤���Ա�Ĵ�С. + chartComponent.setPreferredSize(new Dimension(220, 170));// 在单元格弹出时 需要调整保证属性表的大小. chartComponent.setSupportEdit(false); chartComponent.populate(cc); - + this.add(chartComponent, BorderLayout.EAST); - + hyperEditPane.populate(cc); - + hyperEditPane.useChartComponent(chartComponent); } @@ -72,22 +72,10 @@ public class ChartHyperPoplinkPane extends BasicBeanPane { }else { cc.addChart(new Chart(new Bar2DPlot())); } - - chartComponent = new ChartComponent(); - chartComponent.setPreferredSize(new Dimension(220, 170));// 在单元格弹出时 需要调整保证属性表的大小. - chartComponent.setSupportEdit(false); - chartComponent.populate(cc); - - this.add(chartComponent, BorderLayout.EAST); - - hyperEditPane.populate(cc); - - hyperEditPane.useChartComponent(chartComponent); - return cc; } - protected int getChartParaType() { + protected int getChartParaType() { return ParameterTableModel.CHART_NORMAL_USE; } @@ -102,7 +90,7 @@ public class ChartHyperPoplinkPane extends BasicBeanPane { protected boolean needRenamePane(){ return true; } - + @Override protected String title4PopupWindow() { return Inter.getLocText("FR-Chart-Pop_Chart"); From 2c7bd711c77ee96db0b2bde352c8d021027c054e Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 14 Jul 2016 17:11:35 +0800 Subject: [PATCH 04/21] new file: FillBugSpinner.java --- .../design/gui/ispinner/FillBugSpinner.java | 123 ++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 designer_base/src/com/fr/design/gui/ispinner/FillBugSpinner.java diff --git a/designer_base/src/com/fr/design/gui/ispinner/FillBugSpinner.java b/designer_base/src/com/fr/design/gui/ispinner/FillBugSpinner.java new file mode 100644 index 000000000..f4a83d046 --- /dev/null +++ b/designer_base/src/com/fr/design/gui/ispinner/FillBugSpinner.java @@ -0,0 +1,123 @@ +package com.fr.design.gui.ispinner; + +import java.text.ParseException; +import java.util.List; + +import javax.swing.JComponent; +import javax.swing.JFormattedTextField; +import javax.swing.JSpinner; +import javax.swing.SpinnerDateModel; +import javax.swing.SpinnerListModel; +import javax.swing.SpinnerModel; +import javax.swing.SpinnerNumberModel; +import javax.swing.text.AttributeSet; +import javax.swing.text.BadLocationException; +import javax.swing.text.DefaultFormatterFactory; +import javax.swing.text.DocumentFilter; + +import com.fr.stable.StableUtils; +//_kerry: 用来修复Spinner输入数字自动填充的bug +public class FillBugSpinner extends UIBasicSpinner { + public FillBugSpinner(SpinnerModel model) { + super(model); + } + + protected JComponent createEditor(SpinnerModel model) { + if (model instanceof SpinnerDateModel) { + return new DateEditor(this); + } else if (model instanceof SpinnerListModel) { + return new FillBugEditor(this); + } else if (model instanceof SpinnerNumberModel) { + return new NumberEditor(this); + } else { + return new DefaultEditor(this); + } + } + + private class FillBugEditor extends DefaultEditor { + public FillBugEditor(JSpinner spinner) { + super(spinner); + if (!(spinner.getModel() instanceof SpinnerListModel)) { + throw new IllegalArgumentException( + "model not a SpinnerListModel"); + } + getTextField().setEditable(true); + getTextField().setFormatterFactory( + new DefaultFormatterFactory(new ListFormatter())); + } + + public SpinnerListModel getModel() { + return (SpinnerListModel) (getSpinner().getModel()); + } + + private class ListFormatter extends + JFormattedTextField.AbstractFormatter { + private DocumentFilter filter; + + public String valueToString(Object value) throws ParseException { + if (value == null) { + return ""; + } + return value.toString(); + } + + public Object stringToValue(String string) + throws ParseException { + //add将行数转换成ABC + return string; + } + + protected DocumentFilter getDocumentFilter() { + if (filter == null) { + filter = new Filter(); + } + return filter; + } + + private class Filter extends DocumentFilter { + public void replace(FilterBypass fb, int offset, + int length, String string, AttributeSet attrs) + throws BadLocationException { + if (string != null + && (offset + length) == fb.getDocument() + .getLength()) { + List list = getModel().getList(); + Object next = null; + for (int counter = 0; counter < list.size(); counter++) { + Object value = list.get(counter); + String str = value.toString(); + + if (str != null + && str.startsWith(fb.getDocument() + .getText(0, offset) + + string)) { + next = value; + break; + } + } + + String value = (next != null) ? next.toString() + : null; + + if (value != null) { + fb.remove(0, offset + length); + fb.insertString(0, value, null); + getFormattedTextField().select( + offset + string.length(), + value.length()); + return; + } + } + super.replace(fb, offset, length, string, attrs); + } + + public void insertString(FilterBypass fb, int offset, + String string, AttributeSet attr) + throws BadLocationException { + replace(fb, offset, 0, string, attr); + } + } + } + } + +} \ No newline at end of file From bd157e87caf7737bb0b1add78b1c40dd461f6cab Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 14 Jul 2016 17:18:22 +0800 Subject: [PATCH 05/21] modified: ../columnrow/ColumnRowPane.java --- .../src/com/fr/design/gui/columnrow/ColumnRowPane.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/designer_base/src/com/fr/design/gui/columnrow/ColumnRowPane.java b/designer_base/src/com/fr/design/gui/columnrow/ColumnRowPane.java index c599c5ce8..4df552986 100644 --- a/designer_base/src/com/fr/design/gui/columnrow/ColumnRowPane.java +++ b/designer_base/src/com/fr/design/gui/columnrow/ColumnRowPane.java @@ -22,6 +22,7 @@ import com.fr.design.event.UIObserverListener; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.ispinner.UIBasicSpinner; import com.fr.design.gui.ispinner.UpperCaseSpinner; +import com.fr.design.gui.ispinner.FillBugSpinner; import com.fr.general.ComparatorUtils; import com.fr.stable.ColumnRow; import com.fr.stable.StableUtils; @@ -119,7 +120,7 @@ public class ColumnRowPane extends JPanel implements UIObserver { protected void initRowSpinner() { - rowSpinner = new UIBasicSpinner((new SpinnerListModel(rowarray))) { + rowSpinner = new FillBugSpinner((new SpinnerListModel(rowarray))) { public boolean shouldResponseChangeListener() { return false; } From cf9bc90531395a6b0fc896ec64ad99e0808a51b1 Mon Sep 17 00:00:00 2001 From: kerry Date: Thu, 14 Jul 2016 17:48:56 +0800 Subject: [PATCH 06/21] modified: ../columnrow/ColumnRowPane.java --- .../src/com/fr/design/gui/columnrow/ColumnRowPane.java | 4 ++-- .../ispinner/{FillBugSpinner.java => ColumnRowSpinner.java} | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename designer_base/src/com/fr/design/gui/ispinner/{FillBugSpinner.java => ColumnRowSpinner.java} (97%) diff --git a/designer_base/src/com/fr/design/gui/columnrow/ColumnRowPane.java b/designer_base/src/com/fr/design/gui/columnrow/ColumnRowPane.java index 4df552986..f0622bf85 100644 --- a/designer_base/src/com/fr/design/gui/columnrow/ColumnRowPane.java +++ b/designer_base/src/com/fr/design/gui/columnrow/ColumnRowPane.java @@ -22,7 +22,7 @@ import com.fr.design.event.UIObserverListener; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.gui.ispinner.UIBasicSpinner; import com.fr.design.gui.ispinner.UpperCaseSpinner; -import com.fr.design.gui.ispinner.FillBugSpinner; +import com.fr.design.gui.ispinner.ColumnRowSpinner; import com.fr.general.ComparatorUtils; import com.fr.stable.ColumnRow; import com.fr.stable.StableUtils; @@ -120,7 +120,7 @@ public class ColumnRowPane extends JPanel implements UIObserver { protected void initRowSpinner() { - rowSpinner = new FillBugSpinner((new SpinnerListModel(rowarray))) { + rowSpinner = new ColumnRowSpinner((new SpinnerListModel(rowarray))) { public boolean shouldResponseChangeListener() { return false; } diff --git a/designer_base/src/com/fr/design/gui/ispinner/FillBugSpinner.java b/designer_base/src/com/fr/design/gui/ispinner/ColumnRowSpinner.java similarity index 97% rename from designer_base/src/com/fr/design/gui/ispinner/FillBugSpinner.java rename to designer_base/src/com/fr/design/gui/ispinner/ColumnRowSpinner.java index f4a83d046..adce548df 100644 --- a/designer_base/src/com/fr/design/gui/ispinner/FillBugSpinner.java +++ b/designer_base/src/com/fr/design/gui/ispinner/ColumnRowSpinner.java @@ -17,8 +17,8 @@ import javax.swing.text.DocumentFilter; import com.fr.stable.StableUtils; //_kerry: 用来修复Spinner输入数字自动填充的bug -public class FillBugSpinner extends UIBasicSpinner { - public FillBugSpinner(SpinnerModel model) { +public class ColumnRowSpinner extends UIBasicSpinner { + public ColumnRowSpinner(SpinnerModel model) { super(model); } From eb4f5cfd2226cd88aba8889a8d49546766a3a8d3 Mon Sep 17 00:00:00 2001 From: xiaohu Date: Fri, 15 Jul 2016 09:30:57 +0800 Subject: [PATCH 07/21] =?UTF-8?q?=E5=9C=96=E6=A8=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/beans/BasicBeanPane.java | 1 + .../images/form/toolbar/ChartF-MultiPie.png | Bin 861 -> 0 bytes .../design/images/form/toolbar/ChartF-TreeMap.png | Bin 269 -> 0 bytes .../poly/toolbar/Plugin-ChartF_NewMultiPie.png | Bin 861 -> 0 bytes .../poly/toolbar/Plugin-ChartF_NewTreeMap.png | Bin 269 -> 0 bytes 5 files changed, 1 insertion(+) delete mode 100644 designer_base/src/com/fr/design/images/form/toolbar/ChartF-MultiPie.png delete mode 100644 designer_base/src/com/fr/design/images/form/toolbar/ChartF-TreeMap.png delete mode 100644 designer_base/src/com/fr/design/images/poly/toolbar/Plugin-ChartF_NewMultiPie.png delete mode 100644 designer_base/src/com/fr/design/images/poly/toolbar/Plugin-ChartF_NewTreeMap.png diff --git a/designer_base/src/com/fr/design/beans/BasicBeanPane.java b/designer_base/src/com/fr/design/beans/BasicBeanPane.java index ac0ab63d8..6648bf786 100644 --- a/designer_base/src/com/fr/design/beans/BasicBeanPane.java +++ b/designer_base/src/com/fr/design/beans/BasicBeanPane.java @@ -6,6 +6,7 @@ import com.fr.design.dialog.BasicPane; * Update Pane */ public abstract class BasicBeanPane extends BasicPane { + /** * Populate. diff --git a/designer_base/src/com/fr/design/images/form/toolbar/ChartF-MultiPie.png b/designer_base/src/com/fr/design/images/form/toolbar/ChartF-MultiPie.png deleted file mode 100644 index b6bca9a3ebe316d1f83cbcd8357652531cdf02fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 861 zcmV-j1ETziP)vCP|^=Aq{$;pU{n0m+>E3`b|ebZaBoG} z@Ci)a)eJ=Dl7(BgtpN+c5)^!kE3hQ$TpHzOe!B`7(gIHBJrvDIM6fn%bz+p*tCnZ( zY*a*Io!qdA;MmJ6X$^#t3^g$fiHjQ3Dwjk=U{rD)L?g&SDG0Bw8r&|mrjw?SO_+{c zWMdI%$EegXB0QgiY%i*L49aVas zXZ&Ijb(b7^&XN*;bR n-0O_nDgF5CfAqihM}PqUQ)GI6k}nhj00000NkvXXu0mjft-O5f diff --git a/designer_base/src/com/fr/design/images/form/toolbar/ChartF-TreeMap.png b/designer_base/src/com/fr/design/images/form/toolbar/ChartF-TreeMap.png deleted file mode 100644 index 09edd2b77ec413c2eead3db6bcddafc3ecafbc74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|&H|6fVg?3oVGw3ym^DWNC@5Lt z8c`CQpH@+2u$DqB_b`ZBbhKY7Yyk0WJBDTtpeq?X MUHx3vIVCg!01hT#rT_o{ diff --git a/designer_base/src/com/fr/design/images/poly/toolbar/Plugin-ChartF_NewMultiPie.png b/designer_base/src/com/fr/design/images/poly/toolbar/Plugin-ChartF_NewMultiPie.png deleted file mode 100644 index b6bca9a3ebe316d1f83cbcd8357652531cdf02fb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 861 zcmV-j1ETziP)vCP|^=Aq{$;pU{n0m+>E3`b|ebZaBoG} z@Ci)a)eJ=Dl7(BgtpN+c5)^!kE3hQ$TpHzOe!B`7(gIHBJrvDIM6fn%bz+p*tCnZ( zY*a*Io!qdA;MmJ6X$^#t3^g$fiHjQ3Dwjk=U{rD)L?g&SDG0Bw8r&|mrjw?SO_+{c zWMdI%$EegXB0QgiY%i*L49aVas zXZ&Ijb(b7^&XN*;bR n-0O_nDgF5CfAqihM}PqUQ)GI6k}nhj00000NkvXXu0mjft-O5f diff --git a/designer_base/src/com/fr/design/images/poly/toolbar/Plugin-ChartF_NewTreeMap.png b/designer_base/src/com/fr/design/images/poly/toolbar/Plugin-ChartF_NewTreeMap.png deleted file mode 100644 index 09edd2b77ec413c2eead3db6bcddafc3ecafbc74..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 269 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|&H|6fVg?3oVGw3ym^DWNC@5Lt z8c`CQpH@+2u$DqB_b`ZBbhKY7Yyk0WJBDTtpeq?X MUHx3vIVCg!01hT#rT_o{ From 7163190d0b9cfb154cb7321fc895b56a3dace7c8 Mon Sep 17 00:00:00 2001 From: fr_shine Date: Fri, 15 Jul 2016 13:55:01 +0800 Subject: [PATCH 08/21] bug --- .../mainframe/chart/gui/data/NormalChartDataPane.java | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java index 55c645181..7c60161f4 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java @@ -102,8 +102,14 @@ public class NormalChartDataPane extends DataContentsPane { public void populate(ChartCollection collection) { reportDataPane.refreshContentPane(collection); tableDataPane.refreshContentPane(collection); - - dataPane.populateBean(collection); + + if(collection != null && collection.getSelectedChart().getFilterDefinition() == null) { + reportDataPane.populateBean(collection); + tableDataPane.populateBean(collection); + } else { + dataPane.populateBean(collection); + } + this.initAllListeners(); this.addAttributeChangeListener(listener); From 56b0f337f5814c672ba564847b13f0bb5476611e Mon Sep 17 00:00:00 2001 From: richie Date: Wed, 20 Jul 2016 11:02:50 +0800 Subject: [PATCH 09/21] =?UTF-8?q?sonar=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sonar-project.properties | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 sonar-project.properties diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 000000000..05253b02f --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,15 @@ +# must be unique in a given SonarQube instance +sonar.projectKey=finereport.design +# this is the name displayed in the SonarQube UI +sonar.projectName=finereport.design +sonar.projectVersion=1.0 +sonar.branch=dev + +# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. +# Since SonarQube 4.2, this property is optional if sonar.modules is set. +# If not set, SonarQube starts looking for source code from the directory containing +# the sonar-project.properties file. +sonar.sources=. + +# Encoding of the source code. Default is default system encoding +#sonar.sourceEncoding=UTF-8 \ No newline at end of file From 0555774776602906ca7a2034ade35173abd8c50f Mon Sep 17 00:00:00 2001 From: neil Date: Wed, 20 Jul 2016 14:09:47 +0800 Subject: [PATCH 10/21] =?UTF-8?q?=E6=9C=89=E8=87=AA=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E6=8C=89=E9=92=AE=E5=90=8E,=20web=E5=B1=9E=E6=80=A7=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E6=A0=8F=E8=AE=BE=E7=BD=AE=E4=BF=9D=E5=AD=98=E4=B8=8D?= =?UTF-8?q?=E4=B8=8A.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- designer/src/com/fr/design/webattr/EditToolBar.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/designer/src/com/fr/design/webattr/EditToolBar.java b/designer/src/com/fr/design/webattr/EditToolBar.java index c147b1b0f..da5ebe2b0 100644 --- a/designer/src/com/fr/design/webattr/EditToolBar.java +++ b/designer/src/com/fr/design/webattr/EditToolBar.java @@ -63,16 +63,8 @@ public class EditToolBar extends BasicPane { private ListSelectionListener listSelectionListener = new ListSelectionListener() { public void valueChanged(ListSelectionEvent evt) { - if (lastButton != null && lastButton.getWidget() instanceof Button) { - if (!((list.getSelectedValue() instanceof ToolBarButton) - && ((ToolBarButton)(list.getSelectedValue())).getWidget() instanceof CustomToolBarButton)) { - lastButton.setWidget(bp.update()); - } else { - ((Button) lastButton.getWidget()).setShowIcon(bp.icon.isSelected()); - ((Button) lastButton.getWidget()).setShowText(bp.text.isSelected()); - ((Button) lastButton.getWidget()).setText(bp.nameField.getText()); - ((Button) lastButton.getWidget()).setIconName(bp.iconPane.update()); - } + if (lastButton != null) { + lastButton.setWidget(bp.update()); } if (list.getSelectedValue() instanceof ToolBarButton) { lastButton = (ToolBarButton) list.getSelectedValue(); From 3f4465ff1d18f79681f786b3f872376513f3b731 Mon Sep 17 00:00:00 2001 From: zhouping Date: Wed, 20 Jul 2016 15:42:26 +0800 Subject: [PATCH 11/21] =?UTF-8?q?=E8=A1=A8=E5=8D=95=E4=BA=A4=E4=BA=92?= =?UTF-8?q?=E7=BB=9F=E4=B8=80=E6=B5=8B=E8=AF=95bug=E4=BF=AE=E6=94=B9=201.?= =?UTF-8?q?=E4=BB=8Etoolbarbtn=E4=B8=8A=E6=8B=96=E4=B8=8Btab=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E5=90=8E=E5=BD=93=E5=89=8D=E7=9A=84=E9=80=89=E4=B8=AD?= =?UTF-8?q?=E5=AF=B9=E8=B1=A1=E5=B9=B6=E9=9D=9E=E9=A1=B6=E5=B1=82=E5=B8=83?= =?UTF-8?q?=E5=B1=80=202.tab=E5=B8=83=E5=B1=80=E9=A1=B6=E5=B1=82=E5=B8=83?= =?UTF-8?q?=E5=B1=80=E7=9A=84=E5=90=8D=E5=AD=97=E4=BF=AE=E6=94=B9=E4=B8=BA?= =?UTF-8?q?tablayout=203.=E6=94=AF=E6=8C=81tab=E5=B8=83=E5=B1=80=E7=9A=84?= =?UTF-8?q?=E5=B5=8C=E5=A5=97=E5=90=8E=E6=AD=A3=E7=A1=AE=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../creator/cardlayout/XWCardLayout.java | 3 +- .../cardlayout/XWCardMainBorderLayout.java | 9 +++- .../mainframe/EditingMouseListener.java | 50 +++++++++++++++---- .../mainframe/FormCreatorDropTarget.java | 7 ++- 4 files changed, 56 insertions(+), 13 deletions(-) diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java index 621f4c5f5..346a5ce3a 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardLayout.java @@ -219,8 +219,7 @@ public class XWCardLayout extends XLayoutContainer { * */ protected void setWrapperName(XLayoutContainer parentPanel, String widgetName) { - //先随便set一个, 以后还是要隐藏的 - parentPanel.toData().setWidgetName("border_card_" + widgetName); + parentPanel.toData().setWidgetName("tablayout" + widgetName.replaceAll(createDefaultName(),"")); } /** diff --git a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java index b9039b1d6..42a45c53c 100644 --- a/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/cardlayout/XWCardMainBorderLayout.java @@ -11,6 +11,7 @@ import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.creator.XCreator; +import com.fr.design.designer.creator.XCreatorUtils; import com.fr.design.designer.creator.XLayoutContainer; import com.fr.design.designer.creator.XWBorderLayout; import com.fr.design.icon.IconPathConstants; @@ -263,6 +264,12 @@ public class XWCardMainBorderLayout extends XWBorderLayout{ */ @Override public XLayoutContainer getTopLayout() { - return this; + XLayoutContainer xTopLayout = XCreatorUtils.getParentXLayoutContainer(this).getTopLayout(); + if (xTopLayout != null && !xTopLayout.isEditable()){ + return xTopLayout; + } + else{ + return this; + } } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java b/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java index e66b37552..a4ccae7c2 100644 --- a/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java +++ b/designer_form/src/com/fr/design/mainframe/EditingMouseListener.java @@ -1,9 +1,6 @@ package com.fr.design.mainframe; -import java.awt.Color; -import java.awt.Container; -import java.awt.Cursor; -import java.awt.Rectangle; +import java.awt.*; import java.awt.event.MouseEvent; import javax.swing.*; @@ -326,10 +323,12 @@ public class EditingMouseListener extends MouseInputAdapter { if (designer.getCursor().getType() == Cursor.HAND_CURSOR) { designer.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR)); } - if (e.getX() > (parent.getX() + parent.getWidth() / 2 - EDIT_BTN_WIDTH / 2 - GAP) - && e.getX() < (parent.getX() + parent.getWidth() / 2 + EDIT_BTN_WIDTH / 2 + GAP)) { - if (e.getY() > (parent.getY() + parent.getHeight() / 2 - EDIT_BTN_HEIGHT / 2 - GAP) - && e.getY() < (parent.getY() + parent.getHeight() / 2 + EDIT_BTN_HEIGHT / 2 + GAP + designer.getParaHeight())) { + int minX = getParentPositionX(parent, parent.getX()) + parent.getWidth() / 2; + int minY = getParentPositionY(parent, parent.getY()) + parent.getHeight() / 2; + int offsetX = EDIT_BTN_WIDTH / 2 + GAP; + int offsetY = EDIT_BTN_HEIGHT / 2 + GAP; + if (e.getX() > (minX - offsetX) && e.getX() < (minX + offsetX)) { + if (e.getY() > (minY - offsetY) && e.getY() < (minY + offsetY + designer.getParaHeight())) { designer.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); } } @@ -417,11 +416,43 @@ public class EditingMouseListener extends MouseInputAdapter { designer.repaint(); } + //当前编辑的组件是在布局中,鼠标点击布局外部,需要一次性将布局及其父布局都置为不可编辑 + private void setTopLayoutUnEditable(XLayoutContainer clickedTopLayout, XLayoutContainer clickingTopLayout){ + //双击的前后点击click为相同对象,过滤掉 + if (clickedTopLayout == null || clickedTopLayout == clickingTopLayout){ + return; + } + //位于同一层级的控件,父布局相同,过滤掉 + if (clickingTopLayout != null && clickedTopLayout.getParent() == clickingTopLayout.getParent()){ + return; + } + //前后点击的位于不同层级,要置为不可编辑 + XLayoutContainer xLayoutContainer = (XLayoutContainer)clickedTopLayout.getParent(); + if (xLayoutContainer == clickingTopLayout){ + return; + } + if (xLayoutContainer != null){ + xLayoutContainer.setEditable(false); + setTopLayoutUnEditable((XLayoutContainer) clickedTopLayout.getParent(), clickingTopLayout); + } + } + + private boolean isCreatorInLayout(XCreator creator, XCreator layout){ + if (creator == layout){ + return true; + } + if(layout.getParent() != null){ + return isCreatorInLayout(creator, (XCreator)layout.getParent()); + } + return false; + } + private XCreator processTopLayoutMouseClick(XCreator creator){ XLayoutContainer topLayout = XCreatorUtils.getHotspotContainer(creator).getTopLayout(); if(topLayout != null){ - if (clickTopLayout != null && clickTopLayout != topLayout){ + if (clickTopLayout != null && clickTopLayout != topLayout && !isCreatorInLayout(clickTopLayout, topLayout)){ clickTopLayout.setEditable(false); + setTopLayoutUnEditable(clickTopLayout, topLayout); } clickTopLayout = topLayout; if(!topLayout.isEditable()) { @@ -431,6 +462,7 @@ public class EditingMouseListener extends MouseInputAdapter { else{ if(clickTopLayout != null){ clickTopLayout.setEditable(false); + setTopLayoutUnEditable(clickTopLayout, null); } } diff --git a/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java b/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java index a90ba7fb6..ed4cf4190 100644 --- a/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java +++ b/designer_form/src/com/fr/design/mainframe/FormCreatorDropTarget.java @@ -9,6 +9,7 @@ import java.awt.dnd.DropTarget; import java.awt.dnd.DropTargetDragEvent; import java.awt.dnd.DropTargetDropEvent; import java.awt.dnd.DropTargetEvent; +import java.util.ArrayList; import javax.swing.BorderFactory; import javax.swing.JWindow; @@ -85,8 +86,12 @@ public class FormCreatorDropTarget extends DropTarget { if (success) { // 如果添加成功,则触发相应事件 XCreator xCreator = container.acceptType(XWParameterLayout.class) ? designer.getParaComponent() : designer.getRootComponent(); + //SetSelection时要确保选中的是最顶层的布局 + //tab布局添加的时候是初始化了XWCardLayout,实际上最顶层的布局是XWCardMainBorderLayout + XCreator addingXCreator = addingModel.getXCreator(); + Widget widget = (addingXCreator.getTopLayout() != null) ? (addingXCreator.getTopLayout().toData()) : addingXCreator.toData(); designer.getSelectionModel().setSelectedCreators( - FormSelectionUtils.rebuildSelection(xCreator, new Widget[]{addingModel.getXCreator().toData()})); + FormSelectionUtils.rebuildSelection(xCreator, new Widget[]{widget})); designer.getEditListenerTable().fireCreatorModified(addingModel.getXCreator(), DesignerEvent.CREATOR_ADDED); } else { Toolkit.getDefaultToolkit().beep(); From 66d133546cc02b000b5bafb1744ce8c918e294a2 Mon Sep 17 00:00:00 2001 From: richie Date: Wed, 20 Jul 2016 17:18:00 +0800 Subject: [PATCH 12/21] =?UTF-8?q?=E6=89=A7=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- start.bat | 1 + 1 file changed, 1 insertion(+) create mode 100644 start.bat diff --git a/start.bat b/start.bat new file mode 100644 index 000000000..7535291df --- /dev/null +++ b/start.bat @@ -0,0 +1 @@ +sonar-scanner \ No newline at end of file From a97ae8cc0e487e76cff3cb0760cc1bbf7dbefe9e Mon Sep 17 00:00:00 2001 From: zpc Date: Thu, 21 Jul 2016 17:14:45 +0800 Subject: [PATCH 13/21] =?UTF-8?q?=E5=8E=BB=E6=8E=89qq=E5=B8=AE=E5=8A=A9?= =?UTF-8?q?=EF=BC=8C=E5=B9=B6=E5=9C=A8=E5=85=B3=E4=BA=8E=E8=BD=AF=E4=BB=B6?= =?UTF-8?q?=E4=B8=AD=E6=98=BE=E7=A4=BAqq=E5=8F=B7=E7=A0=81=EF=BC=8C?= =?UTF-8?q?=E5=86=BB=E7=BB=93=E6=97=B6=E7=BB=99=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 去掉qq帮助,并在关于软件中显示qq号码,冻结时给提示 --- .../freeze/RepeatAndFreezeSettingPane.java | 77 ++++++++++++++++++- .../com/fr/design/actions/help/AboutPane.java | 3 + .../mainframe/toolbar/ToolBarMenuDock.java | 2 +- 3 files changed, 77 insertions(+), 5 deletions(-) diff --git a/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java b/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java index f707e0500..3fa4d349a 100644 --- a/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java +++ b/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java @@ -1,17 +1,23 @@ package com.fr.design.report.freeze; -import java.awt.BorderLayout; -import java.awt.Color; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; -import javax.swing.BorderFactory; -import javax.swing.JPanel; +import javax.swing.*; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import com.fr.design.dialog.BasicPane; +import com.fr.design.dialog.UIDialog; +import com.fr.design.extra.PluginManagerPane; +import com.fr.design.extra.PluginShopDialog; +import com.fr.design.extra.PluginWebBridge; import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.ActionLabel; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.mainframe.DesignerContext; import com.fr.general.Inter; import com.fr.page.ReportPageAttrProvider; import com.fr.stable.ColumnRow; @@ -51,6 +57,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane { // 填报冻结 private UICheckBox useWriteFrozenCCheckBox; private UICheckBox useWriteFrozenRCheckBox; + private static final int LABEL_HEIGHT = 45; /** * 重复标题行 @@ -206,7 +213,15 @@ public class RepeatAndFreezeSettingPane extends BasicPane { JPanel repeatPanel = FRGUIPaneFactory.createNColumnGridInnerContainer_S_Pane(1); repeatPanel.setBorder(BorderFactory.createEmptyBorder(0, 20, 0, 0)); JPanel freezePanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); + + //自适应插件 + JPanel infoPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("Attention")); + + BoxCenterAligmentPane actionLabel = getURLActionLabel(Inter.getLocText("FR-Designer_Form-Fit-Tip")); + infoPane.add(actionLabel, BorderLayout.SOUTH); + outfreezePanel.add(freezePanel); + this.add(infoPane, BorderLayout.SOUTH); // 重复打印部分 // 重复打印标题的起始行 JPanel labelPanel = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); @@ -536,4 +551,58 @@ public class RepeatAndFreezeSettingPane extends BasicPane { return null; } + private BoxCenterAligmentPane getURLActionLabel(final String text) { + ActionLabel actionLabel = new ActionLabel(text); + + actionLabel.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + try { + //Desktop.getDesktop().browse(new URI(url)); + final PluginManagerPane managerPane = new PluginManagerPane(); + UIDialog dlg = new PluginShopDialog(DesignerContext.getDesignerFrame(),managerPane); + PluginWebBridge.getHelper().setDialogHandle(dlg); + dlg.setVisible(true); + RepeatAndFreezeSettingPane.this.getTopLevelAncestor().setVisible(false); + } catch (Exception exp) { + + } + } + }); + + return new BoxCenterAligmentPane(actionLabel); + } + + class BoxCenterAligmentPane extends JPanel { + + private UILabel textLabel; + + public BoxCenterAligmentPane(String text) { + this(new UILabel(text)); + } + + public BoxCenterAligmentPane(UILabel label) { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + + JPanel centerPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); + this.add(centerPane, BorderLayout.CENTER); + UILabel label1 = new UILabel(Inter.getLocText("FR-Designer_Form-Frozen-Tip")); + label1.setForeground(new Color(255, 0, 0)); + UILabel label2 = new UILabel(Inter.getLocText("FR-Designer_Form-Forzen-Speed")); + label2.setForeground(new Color(255, 0, 0)); + this.textLabel = label; + centerPane.add(label1); + centerPane.add(textLabel); + centerPane.add(label2); + } + + public void setFont(Font font) { + super.setFont(font); + + if (textLabel != null) { + textLabel.setFont(font); + } + } + } + } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/actions/help/AboutPane.java b/designer_base/src/com/fr/design/actions/help/AboutPane.java index caa319088..680aa9b95 100644 --- a/designer_base/src/com/fr/design/actions/help/AboutPane.java +++ b/designer_base/src/com/fr/design/actions/help/AboutPane.java @@ -11,6 +11,7 @@ import com.fr.design.layout.FRGUIPaneFactory; import com.fr.general.ComparatorUtils; import com.fr.general.GeneralUtils; import com.fr.general.Inter; +import com.fr.general.SiteCenter; import com.fr.stable.ProductConstants; import com.fr.stable.StringUtils; import com.fr.stable.bridge.StableFactory; @@ -69,6 +70,8 @@ public class AboutPane extends JPanel { boxCenterAlignmentPane = new BoxCenterAligmentPane(Inter.getLocText("Service_Phone") + ProductConstants.COMPARE_TELEPHONE); contentPane.add(boxCenterAlignmentPane); } + boxCenterAlignmentPane = new BoxCenterAligmentPane("QQ:" + SiteCenter.getInstance().acquireUrlByKind("help.qq")); + contentPane.add(boxCenterAlignmentPane); BoxCenterAligmentPane actionLabel = getURLActionLabel(ProductConstants.WEBSITE_URL); BoxCenterAligmentPane emailLabel = getEmailActionLabel(ProductConstants.SUPPORT_EMAIL); diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index f0b1eac9f..364a11cee 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -301,7 +301,7 @@ public abstract class ToolBarMenuDock { if (ComparatorUtils.equals(ProductConstants.APP_NAME,FINEREPORT)) { shortCuts.add(new FeedBackAction()); shortCuts.add(SeparatorDef.DEFAULT); - shortCuts.add(new SupportQQAction()); + //shortCuts.add(new SupportQQAction()); shortCuts.add(SeparatorDef.DEFAULT); // shortCuts.add(new ForumAction()); } From 7b6df7ae61d5da9c73b5ed4fb67d8458e3809088 Mon Sep 17 00:00:00 2001 From: zpc Date: Fri, 22 Jul 2016 13:02:09 +0800 Subject: [PATCH 14/21] =?UTF-8?q?=E8=A3=85=E4=BA=86=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E5=90=8E,=20=E5=8F=AF=E4=BB=A5=E8=AE=BE=E7=BD=AE=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=88=96=E8=80=85=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 装了插件后, 可以设置显示或者不显示 --- .../fr/design/fun/ShowParameterWindow.java | 20 +++++++++++++ .../AbstractShowParameterWindowProvider.java | 30 +++++++++++++++++++ .../designer/creator/XWParameterLayout.java | 26 ++++++++++++++-- 3 files changed, 74 insertions(+), 2 deletions(-) create mode 100644 designer_base/src/com/fr/design/fun/ShowParameterWindow.java create mode 100644 designer_base/src/com/fr/design/fun/impl/AbstractShowParameterWindowProvider.java diff --git a/designer_base/src/com/fr/design/fun/ShowParameterWindow.java b/designer_base/src/com/fr/design/fun/ShowParameterWindow.java new file mode 100644 index 000000000..6775deaa4 --- /dev/null +++ b/designer_base/src/com/fr/design/fun/ShowParameterWindow.java @@ -0,0 +1,20 @@ +package com.fr.design.fun; + +import com.fr.stable.fun.mark.Immutable; + + +/** + * Created by zpc on 16/7/21. + */ +public interface ShowParameterWindow extends Immutable { + + String MARK_STRING = "ShowParameter"; + + int CURRENT_LEVEL = 1; + + /** + * 生成属性表 + */ + void add(); +} + diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractShowParameterWindowProvider.java b/designer_base/src/com/fr/design/fun/impl/AbstractShowParameterWindowProvider.java new file mode 100644 index 000000000..98d7d92b4 --- /dev/null +++ b/designer_base/src/com/fr/design/fun/impl/AbstractShowParameterWindowProvider.java @@ -0,0 +1,30 @@ +package com.fr.design.fun.impl; + +import com.fr.design.fun.ShowParameterWindow; +import com.fr.stable.fun.mark.API; + + +/** + * Created by zpc on 2016/7/21. + */ +@API(level = ShowParameterWindow.CURRENT_LEVEL) +public abstract class AbstractShowParameterWindowProvider implements ShowParameterWindow { + + public int currentAPILevel() { + return CURRENT_LEVEL; + } + + public int layerIndex() { + return DEFAULT_LAYER_INDEX; + } + + + + /** + * 生成属性表 + */ + @Override + public void add() { + + } +} \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java b/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java index 9f92b9786..1b57aa565 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java @@ -3,6 +3,7 @@ */ package com.fr.design.designer.creator; +import com.fr.design.ExtraDesignClassManager; import com.fr.design.designer.beans.LayoutAdapter; import com.fr.design.designer.beans.adapters.layout.FRParameterLayoutAdapter; import com.fr.design.form.util.XCreatorConstants; @@ -16,6 +17,7 @@ import com.fr.form.ui.container.WFitLayout; import com.fr.form.ui.container.WParameterLayout; import com.fr.general.Background; import com.fr.general.Inter; +import com.fr.design.fun.ShowParameterWindow; import java.awt.*; import java.beans.IntrospectionException; @@ -51,19 +53,39 @@ public class XWParameterLayout extends XWAbsoluteLayout { * @throws java.beans.IntrospectionException */ public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException { - return new CRPropertyDescriptor[]{ + ShowParameterWindow processor = ExtraDesignClassManager.getInstance().getSingle(ShowParameterWindow.MARK_STRING); + if (processor == null) { + return new CRPropertyDescriptor[]{ + new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName(Inter + .getLocText("FR-Designer_Form-Widget_Name")), + new CRPropertyDescriptor("background", this.data.getClass()).setEditorClass(BackgroundEditor.class) + .setRendererClass(BackgroundRenderer.class).setI18NName(Inter.getLocText("Background")) + .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), + new CRPropertyDescriptor("delayDisplayContent", this.data.getClass()).setEditorClass(BooleanEditor.class) + .setI18NName(Inter.getLocText("FR-Designer_DisplayNothingBeforeQuery")) + .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), + new CRPropertyDescriptor("position", this.data.getClass()).setEditorClass(WidgetDisplayPosition.class) + .setRendererClass(WidgetDisplayPositionRender.class).setI18NName(Inter.getLocText("FR-Designer_WidgetDisplyPosition")) + .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), + }; + } + return new CRPropertyDescriptor[]{ new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName(Inter .getLocText("FR-Designer_Form-Widget_Name")), new CRPropertyDescriptor("background", this.data.getClass()).setEditorClass(BackgroundEditor.class) .setRendererClass(BackgroundRenderer.class).setI18NName(Inter.getLocText("Background")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), + new CRPropertyDescriptor("display", this.data.getClass()).setEditorClass(BooleanEditor.class) + .setI18NName(Inter.getLocText("ParameterD-Show_Parameter_Window")) + .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), new CRPropertyDescriptor("delayDisplayContent", this.data.getClass()).setEditorClass(BooleanEditor.class) .setI18NName(Inter.getLocText("FR-Designer_DisplayNothingBeforeQuery")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), new CRPropertyDescriptor("position", this.data.getClass()).setEditorClass(WidgetDisplayPosition.class) - .setRendererClass(WidgetDisplayPositionRender.class).setI18NName(Inter.getLocText("FR-Designer_WidgetDisplyPosition")) + .setRendererClass(WidgetDisplayPositionRender.class).setI18NName(Inter.getLocText("FR-Designer_WidgetDisplyPosition")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), }; + } @Override From fd400ec7b66bfc32ee9fcd8ada615f6f7870076e Mon Sep 17 00:00:00 2001 From: zpc Date: Mon, 25 Jul 2016 14:21:15 +0800 Subject: [PATCH 15/21] =?UTF-8?q?=E8=A3=85=E4=BA=86=E6=8F=92=E4=BB=B6?= =?UTF-8?q?=E5=90=8E,=20=E5=8F=AF=E4=BB=A5=E8=AE=BE=E7=BD=AE=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E6=88=96=E8=80=85=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 装了插件后, 可以设置显示或者不显示 --- .../fr/design/fun/ShowParameterWindow.java | 3 +- .../AbstractShowParameterWindowProvider.java | 5 ++-- .../designer/creator/XWParameterLayout.java | 30 +++++++------------ 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/designer_base/src/com/fr/design/fun/ShowParameterWindow.java b/designer_base/src/com/fr/design/fun/ShowParameterWindow.java index 6775deaa4..c8cacb1f0 100644 --- a/designer_base/src/com/fr/design/fun/ShowParameterWindow.java +++ b/designer_base/src/com/fr/design/fun/ShowParameterWindow.java @@ -1,6 +1,7 @@ package com.fr.design.fun; import com.fr.stable.fun.mark.Immutable; +import java.beans.PropertyDescriptor; /** @@ -15,6 +16,6 @@ public interface ShowParameterWindow extends Immutable { /** * 生成属性表 */ - void add(); + PropertyDescriptor[] add(Class temp); } diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractShowParameterWindowProvider.java b/designer_base/src/com/fr/design/fun/impl/AbstractShowParameterWindowProvider.java index 98d7d92b4..6eec6e54b 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractShowParameterWindowProvider.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractShowParameterWindowProvider.java @@ -2,6 +2,7 @@ package com.fr.design.fun.impl; import com.fr.design.fun.ShowParameterWindow; import com.fr.stable.fun.mark.API; +import java.beans.PropertyDescriptor; /** @@ -24,7 +25,7 @@ public abstract class AbstractShowParameterWindowProvider implements ShowParamet * 生成属性表 */ @Override - public void add() { - + public PropertyDescriptor[] add(Class temp) { + return null; } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java b/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java index 1b57aa565..58e9dd455 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java @@ -18,9 +18,11 @@ import com.fr.form.ui.container.WParameterLayout; import com.fr.general.Background; import com.fr.general.Inter; import com.fr.design.fun.ShowParameterWindow; +import com.fr.stable.ArrayUtils; import java.awt.*; import java.beans.IntrospectionException; +import java.beans.PropertyDescriptor; /** * 表单参数界面container @@ -53,31 +55,12 @@ public class XWParameterLayout extends XWAbsoluteLayout { * @throws java.beans.IntrospectionException */ public CRPropertyDescriptor[] supportedDescriptor() throws IntrospectionException { - ShowParameterWindow processor = ExtraDesignClassManager.getInstance().getSingle(ShowParameterWindow.MARK_STRING); - if (processor == null) { - return new CRPropertyDescriptor[]{ - new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName(Inter - .getLocText("FR-Designer_Form-Widget_Name")), - new CRPropertyDescriptor("background", this.data.getClass()).setEditorClass(BackgroundEditor.class) - .setRendererClass(BackgroundRenderer.class).setI18NName(Inter.getLocText("Background")) - .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), - new CRPropertyDescriptor("delayDisplayContent", this.data.getClass()).setEditorClass(BooleanEditor.class) - .setI18NName(Inter.getLocText("FR-Designer_DisplayNothingBeforeQuery")) - .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), - new CRPropertyDescriptor("position", this.data.getClass()).setEditorClass(WidgetDisplayPosition.class) - .setRendererClass(WidgetDisplayPositionRender.class).setI18NName(Inter.getLocText("FR-Designer_WidgetDisplyPosition")) - .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), - }; - } - return new CRPropertyDescriptor[]{ + CRPropertyDescriptor[] propertyTableEditor = new CRPropertyDescriptor[]{ new CRPropertyDescriptor("widgetName", this.data.getClass()).setI18NName(Inter .getLocText("FR-Designer_Form-Widget_Name")), new CRPropertyDescriptor("background", this.data.getClass()).setEditorClass(BackgroundEditor.class) .setRendererClass(BackgroundRenderer.class).setI18NName(Inter.getLocText("Background")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), - new CRPropertyDescriptor("display", this.data.getClass()).setEditorClass(BooleanEditor.class) - .setI18NName(Inter.getLocText("ParameterD-Show_Parameter_Window")) - .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), new CRPropertyDescriptor("delayDisplayContent", this.data.getClass()).setEditorClass(BooleanEditor.class) .setI18NName(Inter.getLocText("FR-Designer_DisplayNothingBeforeQuery")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), @@ -86,6 +69,13 @@ public class XWParameterLayout extends XWAbsoluteLayout { .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), }; + ShowParameterWindow processor = ExtraDesignClassManager.getInstance().getSingle(ShowParameterWindow.MARK_STRING); + if (processor == null) { + return propertyTableEditor; + } + PropertyDescriptor[] extraEditor = processor.add(this.data.getClass()); + + return (CRPropertyDescriptor[]) ArrayUtils.addAll(propertyTableEditor, extraEditor); } @Override From 373b724b76f5a325f38b2a1d8b0b683c442ff481 Mon Sep 17 00:00:00 2001 From: zpc Date: Mon, 25 Jul 2016 14:48:58 +0800 Subject: [PATCH 16/21] =?UTF-8?q?=E4=BB=96=E8=A3=85=E4=BA=86=E6=8F=92?= =?UTF-8?q?=E4=BB=B6=E5=90=8E,=20=E5=8F=AF=E4=BB=A5=E8=AE=BE=E7=BD=AE?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E6=88=96=E8=80=85=E4=B8=8D=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 他装了插件后, 可以设置显示或者不显示 --- ...terWindow.java => ParameterWindowEditorProcessor.java} | 4 ++-- ...r.java => AbstractParameterWindowEditorProcessor.java} | 8 ++++---- .../com/fr/design/designer/creator/XWParameterLayout.java | 6 +++--- 3 files changed, 9 insertions(+), 9 deletions(-) rename designer_base/src/com/fr/design/fun/{ShowParameterWindow.java => ParameterWindowEditorProcessor.java} (66%) rename designer_base/src/com/fr/design/fun/impl/{AbstractShowParameterWindowProvider.java => AbstractParameterWindowEditorProcessor.java} (55%) diff --git a/designer_base/src/com/fr/design/fun/ShowParameterWindow.java b/designer_base/src/com/fr/design/fun/ParameterWindowEditorProcessor.java similarity index 66% rename from designer_base/src/com/fr/design/fun/ShowParameterWindow.java rename to designer_base/src/com/fr/design/fun/ParameterWindowEditorProcessor.java index c8cacb1f0..6d8b6a33f 100644 --- a/designer_base/src/com/fr/design/fun/ShowParameterWindow.java +++ b/designer_base/src/com/fr/design/fun/ParameterWindowEditorProcessor.java @@ -7,7 +7,7 @@ import java.beans.PropertyDescriptor; /** * Created by zpc on 16/7/21. */ -public interface ShowParameterWindow extends Immutable { +public interface ParameterWindowEditorProcessor extends Immutable { String MARK_STRING = "ShowParameter"; @@ -16,6 +16,6 @@ public interface ShowParameterWindow extends Immutable { /** * 生成属性表 */ - PropertyDescriptor[] add(Class temp); + PropertyDescriptor[] createPropertyDescriptor(Class temp); } diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractShowParameterWindowProvider.java b/designer_base/src/com/fr/design/fun/impl/AbstractParameterWindowEditorProcessor.java similarity index 55% rename from designer_base/src/com/fr/design/fun/impl/AbstractShowParameterWindowProvider.java rename to designer_base/src/com/fr/design/fun/impl/AbstractParameterWindowEditorProcessor.java index 6eec6e54b..57375903d 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractShowParameterWindowProvider.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractParameterWindowEditorProcessor.java @@ -1,6 +1,6 @@ package com.fr.design.fun.impl; -import com.fr.design.fun.ShowParameterWindow; +import com.fr.design.fun.ParameterWindowEditorProcessor; import com.fr.stable.fun.mark.API; import java.beans.PropertyDescriptor; @@ -8,8 +8,8 @@ import java.beans.PropertyDescriptor; /** * Created by zpc on 2016/7/21. */ -@API(level = ShowParameterWindow.CURRENT_LEVEL) -public abstract class AbstractShowParameterWindowProvider implements ShowParameterWindow { +@API(level = ParameterWindowEditorProcessor.CURRENT_LEVEL) +public abstract class AbstractParameterWindowEditorProcessor implements ParameterWindowEditorProcessor { public int currentAPILevel() { return CURRENT_LEVEL; @@ -25,7 +25,7 @@ public abstract class AbstractShowParameterWindowProvider implements ShowParamet * 生成属性表 */ @Override - public PropertyDescriptor[] add(Class temp) { + public PropertyDescriptor[] createPropertyDescriptor(Class temp) { return null; } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java b/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java index 58e9dd455..6f13b32b7 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java @@ -17,7 +17,7 @@ import com.fr.form.ui.container.WFitLayout; import com.fr.form.ui.container.WParameterLayout; import com.fr.general.Background; import com.fr.general.Inter; -import com.fr.design.fun.ShowParameterWindow; +import com.fr.design.fun.ParameterWindowEditorProcessor; import com.fr.stable.ArrayUtils; import java.awt.*; @@ -69,11 +69,11 @@ public class XWParameterLayout extends XWAbsoluteLayout { .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), }; - ShowParameterWindow processor = ExtraDesignClassManager.getInstance().getSingle(ShowParameterWindow.MARK_STRING); + ParameterWindowEditorProcessor processor = ExtraDesignClassManager.getInstance().getSingle(ParameterWindowEditorProcessor.MARK_STRING); if (processor == null) { return propertyTableEditor; } - PropertyDescriptor[] extraEditor = processor.add(this.data.getClass()); + PropertyDescriptor[] extraEditor = processor.createPropertyDescriptor(this.data.getClass()); return (CRPropertyDescriptor[]) ArrayUtils.addAll(propertyTableEditor, extraEditor); } From e3be3575eeb68ed6d92f16b788ba83655f1fb19d Mon Sep 17 00:00:00 2001 From: zpc Date: Mon, 25 Jul 2016 15:33:31 +0800 Subject: [PATCH 17/21] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E8=A7=84=E8=8C=83=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改一些规范问题 --- .../fr/design/report/freeze/RepeatAndFreezeSettingPane.java | 5 ++++- .../com/fr/design/fun/ParameterWindowEditorProcessor.java | 2 +- .../fun/impl/AbstractParameterWindowEditorProcessor.java | 2 +- .../src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java | 1 - 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java b/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java index 3fa4d349a..7cf176302 100644 --- a/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java +++ b/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java @@ -28,6 +28,10 @@ import com.fr.stable.bridge.StableFactory; * Sets Report Page Attributes */ public class RepeatAndFreezeSettingPane extends BasicPane { + + //边框高度 + private static final int LABEL_HEIGHT = 45; + // 重复标题行 private RepeatRowPane repeatTitleRowPane; // 重复标题列 @@ -57,7 +61,6 @@ public class RepeatAndFreezeSettingPane extends BasicPane { // 填报冻结 private UICheckBox useWriteFrozenCCheckBox; private UICheckBox useWriteFrozenRCheckBox; - private static final int LABEL_HEIGHT = 45; /** * 重复标题行 diff --git a/designer_base/src/com/fr/design/fun/ParameterWindowEditorProcessor.java b/designer_base/src/com/fr/design/fun/ParameterWindowEditorProcessor.java index 6d8b6a33f..869556065 100644 --- a/designer_base/src/com/fr/design/fun/ParameterWindowEditorProcessor.java +++ b/designer_base/src/com/fr/design/fun/ParameterWindowEditorProcessor.java @@ -9,7 +9,7 @@ import java.beans.PropertyDescriptor; */ public interface ParameterWindowEditorProcessor extends Immutable { - String MARK_STRING = "ShowParameter"; + String MARK_STRING = "ParameterWindowEditorProcessor"; int CURRENT_LEVEL = 1; diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractParameterWindowEditorProcessor.java b/designer_base/src/com/fr/design/fun/impl/AbstractParameterWindowEditorProcessor.java index 57375903d..fcdd432b2 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractParameterWindowEditorProcessor.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractParameterWindowEditorProcessor.java @@ -26,6 +26,6 @@ public abstract class AbstractParameterWindowEditorProcessor implements Paramete */ @Override public PropertyDescriptor[] createPropertyDescriptor(Class temp) { - return null; + return new PropertyDescriptor[0]; } } \ No newline at end of file diff --git a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java index 364a11cee..d0177d404 100644 --- a/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java +++ b/designer_base/src/com/fr/design/mainframe/toolbar/ToolBarMenuDock.java @@ -301,7 +301,6 @@ public abstract class ToolBarMenuDock { if (ComparatorUtils.equals(ProductConstants.APP_NAME,FINEREPORT)) { shortCuts.add(new FeedBackAction()); shortCuts.add(SeparatorDef.DEFAULT); - //shortCuts.add(new SupportQQAction()); shortCuts.add(SeparatorDef.DEFAULT); // shortCuts.add(new ForumAction()); } From 181473e663020e1bb4ac35a507a0665cfac749d4 Mon Sep 17 00:00:00 2001 From: zpc Date: Mon, 25 Jul 2016 17:48:01 +0800 Subject: [PATCH 18/21] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E8=A7=84=E8=8C=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 代码规范 --- .../fr/design/report/freeze/RepeatAndFreezeSettingPane.java | 2 +- .../fr/design/designer/creator/CRPropertyDescriptor.java | 4 ++-- .../com/fr/design/fun/ParameterWindowEditorProcessor.java | 5 ++--- .../fun/impl/AbstractParameterWindowEditorProcessor.java | 6 +++--- .../com/fr/design/designer/creator/XWParameterLayout.java | 4 ++-- 5 files changed, 10 insertions(+), 11 deletions(-) rename {designer_form => designer_base}/src/com/fr/design/designer/creator/CRPropertyDescriptor.java (92%) diff --git a/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java b/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java index 7cf176302..fd24573fe 100644 --- a/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java +++ b/designer/src/com/fr/design/report/freeze/RepeatAndFreezeSettingPane.java @@ -218,7 +218,7 @@ public class RepeatAndFreezeSettingPane extends BasicPane { JPanel freezePanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); //自适应插件 - JPanel infoPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("Attention")); + JPanel infoPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Attention")); BoxCenterAligmentPane actionLabel = getURLActionLabel(Inter.getLocText("FR-Designer_Form-Fit-Tip")); infoPane.add(actionLabel, BorderLayout.SOUTH); diff --git a/designer_form/src/com/fr/design/designer/creator/CRPropertyDescriptor.java b/designer_base/src/com/fr/design/designer/creator/CRPropertyDescriptor.java similarity index 92% rename from designer_form/src/com/fr/design/designer/creator/CRPropertyDescriptor.java rename to designer_base/src/com/fr/design/designer/creator/CRPropertyDescriptor.java index c56e150c0..315565324 100644 --- a/designer_form/src/com/fr/design/designer/creator/CRPropertyDescriptor.java +++ b/designer_base/src/com/fr/design/designer/creator/CRPropertyDescriptor.java @@ -3,7 +3,6 @@ */ package com.fr.design.designer.creator; -import com.fr.design.gui.xtable.AbstractPropertyGroupModel; import com.fr.stable.StringUtils; import com.fr.stable.core.PropertyChangeAdapter; @@ -15,6 +14,7 @@ import java.beans.PropertyDescriptor; * @since 6.5.3 */ public final class CRPropertyDescriptor extends PropertyDescriptor { + public static final String RENDERER = "renderer"; private PropertyChangeAdapter l; @@ -51,7 +51,7 @@ public final class CRPropertyDescriptor extends PropertyDescriptor { } public CRPropertyDescriptor setRendererClass(Class clazz) { - this.putKeyValue(AbstractPropertyGroupModel.RENDERER, clazz); + this.putKeyValue(RENDERER, clazz); return this; } diff --git a/designer_base/src/com/fr/design/fun/ParameterWindowEditorProcessor.java b/designer_base/src/com/fr/design/fun/ParameterWindowEditorProcessor.java index 869556065..d1eb60a88 100644 --- a/designer_base/src/com/fr/design/fun/ParameterWindowEditorProcessor.java +++ b/designer_base/src/com/fr/design/fun/ParameterWindowEditorProcessor.java @@ -1,8 +1,7 @@ package com.fr.design.fun; +import com.fr.design.designer.creator.CRPropertyDescriptor; import com.fr.stable.fun.mark.Immutable; -import java.beans.PropertyDescriptor; - /** * Created by zpc on 16/7/21. @@ -16,6 +15,6 @@ public interface ParameterWindowEditorProcessor extends Immutable { /** * 生成属性表 */ - PropertyDescriptor[] createPropertyDescriptor(Class temp); + CRPropertyDescriptor[] createPropertyDescriptor(Class temp); } diff --git a/designer_base/src/com/fr/design/fun/impl/AbstractParameterWindowEditorProcessor.java b/designer_base/src/com/fr/design/fun/impl/AbstractParameterWindowEditorProcessor.java index fcdd432b2..0d449090f 100644 --- a/designer_base/src/com/fr/design/fun/impl/AbstractParameterWindowEditorProcessor.java +++ b/designer_base/src/com/fr/design/fun/impl/AbstractParameterWindowEditorProcessor.java @@ -1,8 +1,8 @@ package com.fr.design.fun.impl; +import com.fr.design.designer.creator.CRPropertyDescriptor; import com.fr.design.fun.ParameterWindowEditorProcessor; import com.fr.stable.fun.mark.API; -import java.beans.PropertyDescriptor; /** @@ -25,7 +25,7 @@ public abstract class AbstractParameterWindowEditorProcessor implements Paramete * 生成属性表 */ @Override - public PropertyDescriptor[] createPropertyDescriptor(Class temp) { - return new PropertyDescriptor[0]; + public CRPropertyDescriptor[] createPropertyDescriptor(Class temp) { + return new CRPropertyDescriptor[0]; } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java b/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java index 6f13b32b7..9e5520716 100644 --- a/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java +++ b/designer_form/src/com/fr/design/designer/creator/XWParameterLayout.java @@ -73,9 +73,9 @@ public class XWParameterLayout extends XWAbsoluteLayout { if (processor == null) { return propertyTableEditor; } - PropertyDescriptor[] extraEditor = processor.createPropertyDescriptor(this.data.getClass()); + CRPropertyDescriptor[] extraEditor = processor.createPropertyDescriptor(this.data.getClass()); - return (CRPropertyDescriptor[]) ArrayUtils.addAll(propertyTableEditor, extraEditor); + return ArrayUtils.addAll(propertyTableEditor, extraEditor); } @Override From cffe90f8257da9dfda66714b3565cd2f72311304 Mon Sep 17 00:00:00 2001 From: neil Date: Fri, 29 Jul 2016 11:00:29 +0800 Subject: [PATCH 19/21] =?UTF-8?q?=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/ChartHyperPoplinkPane.java | 20 +++++++++---------- .../chart/gui/data/NormalChartDataPane.java | 1 - sonar-project.properties | 2 +- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java b/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java index 252e0b751..fdcda38b2 100644 --- a/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java +++ b/designer_chart/src/com/fr/design/chart/series/SeriesCondition/impl/ChartHyperPoplinkPane.java @@ -4,7 +4,6 @@ import com.fr.base.chart.BaseChartCollection; import com.fr.chart.chartattr.Bar2DPlot; import com.fr.chart.chartattr.Chart; import com.fr.chart.chartattr.ChartCollection; -import com.fr.chart.chartattr.ChartFactory; import com.fr.chart.charttypes.ChartTypeManager; import com.fr.chart.web.ChartHyperPoplink; import com.fr.design.beans.BasicBeanPane; @@ -23,7 +22,7 @@ import com.fr.general.Inter; import java.awt.*; /** - * 类说明: 图表超链 -- 弹出 悬浮窗. + * 类说明: 图表超链 -- 弹出 悬浮窗. * @author kunsnat E-mail:kunsnat@gmail.com * @version 创建时间:2011-12-28 上午10:41:39 */ @@ -32,7 +31,7 @@ public class ChartHyperPoplinkPane extends BasicBeanPane { private UITextField itemNameTextField; private ChartHyperEditPane hyperEditPane; private ChartComponent chartComponent; - + public ChartHyperPoplinkPane() { this.setLayout(FRGUIPaneFactory.createM_BorderLayout()); @@ -43,18 +42,17 @@ public class ChartHyperPoplinkPane extends BasicBeanPane { hyperEditPane = new ChartHyperEditPane(getChartParaType(), getValueEditorPane(), getValueEditorPane()); this.add(hyperEditPane, BorderLayout.CENTER); - - ChartCollection cc = createChartCollection(); - + ChartCollection cc = createChartCollection(); + chartComponent = new ChartComponent(); chartComponent.setPreferredSize(new Dimension(220, 170));// 在单元格弹出时 需要调整保证属性表的大小. chartComponent.setSupportEdit(false); chartComponent.populate(cc); - + this.add(chartComponent, BorderLayout.EAST); - + hyperEditPane.populate(cc); - + hyperEditPane.useChartComponent(chartComponent); } @@ -75,7 +73,7 @@ public class ChartHyperPoplinkPane extends BasicBeanPane { return cc; } - protected int getChartParaType() { + protected int getChartParaType() { return ParameterTableModel.CHART_NORMAL_USE; } @@ -90,7 +88,7 @@ public class ChartHyperPoplinkPane extends BasicBeanPane { protected boolean needRenamePane(){ return true; } - + @Override protected String title4PopupWindow() { return Inter.getLocText("FR-Chart-Pop_Chart"); diff --git a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java index 7c60161f4..bf64e4957 100644 --- a/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java +++ b/designer_chart/src/com/fr/design/mainframe/chart/gui/data/NormalChartDataPane.java @@ -109,7 +109,6 @@ public class NormalChartDataPane extends DataContentsPane { } else { dataPane.populateBean(collection); } - this.initAllListeners(); this.addAttributeChangeListener(listener); diff --git a/sonar-project.properties b/sonar-project.properties index 05253b02f..f3ad57a2d 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -3,7 +3,7 @@ sonar.projectKey=finereport.design # this is the name displayed in the SonarQube UI sonar.projectName=finereport.design sonar.projectVersion=1.0 -sonar.branch=dev +sonar.branch=master # Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows. # Since SonarQube 4.2, this property is optional if sonar.modules is set. From e3662609221976276629a71c52500c11b923eba0 Mon Sep 17 00:00:00 2001 From: neil Date: Fri, 29 Jul 2016 11:15:23 +0800 Subject: [PATCH 20/21] =?UTF-8?q?=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sonar-project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sonar-project.properties b/sonar-project.properties index f3ad57a2d..b94077d28 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,4 +1,4 @@ -# must be unique in a given SonarQube instance +# must be unique in a given SonarQube instance sonar.projectKey=finereport.design # this is the name displayed in the SonarQube UI sonar.projectName=finereport.design From 4d8a43ba7fa639f65fc9575cc18a5bd38b86941f Mon Sep 17 00:00:00 2001 From: neil Date: Fri, 29 Jul 2016 11:16:50 +0800 Subject: [PATCH 21/21] 1 --- sonar-project.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sonar-project.properties b/sonar-project.properties index b94077d28..f3ad57a2d 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -1,4 +1,4 @@ -# must be unique in a given SonarQube instance +# must be unique in a given SonarQube instance sonar.projectKey=finereport.design # this is the name displayed in the SonarQube UI sonar.projectName=finereport.design