Browse Source

Merge pull request #1179 in BA/design from ~PLOUGH/design:release/9.0 to release/9.0

* commit '83f12a44b27dd66cc8409574dbd745f40c92bc46':
  REPORT-4364 条件属性>控件弹窗
  REPORT-4364 条件属性>控件、超级链接弹窗=>界面调整,优化代码
  REPORT-4364 条件属性>超级链接弹窗
master
superman 7 years ago
parent
commit
3124543e88
  1. 2
      designer/src/com/fr/design/condition/HyperlinkPane.java
  2. 10
      designer/src/com/fr/design/condition/WidgetHighlightPane.java
  3. 5
      designer/src/com/fr/design/mainframe/JWorkBook.java
  4. 5
      designer/src/com/fr/design/mainframe/ReportHyperlinkGroupPane.java
  5. 27
      designer/src/com/fr/design/mainframe/ReportHyperlinkGroupPaneNoPop.java
  6. 7
      designer/src/com/fr/design/widget/WidgetEventPaneNoPop.java
  7. 14
      designer_base/src/com/fr/design/gui/controlpane/UIControlPane.java
  8. 14
      designer_base/src/com/fr/design/gui/controlpane/UIListControlPane.java
  9. 7
      designer_base/src/com/fr/design/mainframe/JTemplate.java
  10. 2
      designer_form/src/com/fr/design/gui/xpane/FormHyperlinkGroupPane.java
  11. 26
      designer_form/src/com/fr/design/gui/xpane/FormHyperlinkGroupPaneNoPop.java
  12. 7
      designer_form/src/com/fr/design/mainframe/JForm.java

2
designer/src/com/fr/design/condition/HyperlinkPane.java

@ -37,7 +37,7 @@ public class HyperlinkPane extends ConditionAttrSingleConditionPane<HighlightAct
hyperlinkButton.addActionListener(new ActionListener() { hyperlinkButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
NameJavaScriptGroup nameHyperlinks = jsGroup; NameJavaScriptGroup nameHyperlinks = jsGroup;
pane = DesignerContext.getDesignerFrame().getSelectedJTemplate().getHyperLinkPane(HyperlinkGroupPaneActionImpl.getInstance()); pane = DesignerContext.getDesignerFrame().getSelectedJTemplate().getHyperLinkPaneNoPop(HyperlinkGroupPaneActionImpl.getInstance());
pane.populate(nameHyperlinks); pane.populate(nameHyperlinks);
dialog = pane.showWindow(SwingUtilities.getWindowAncestor(conditionAttributesPane)); dialog = pane.showWindow(SwingUtilities.getWindowAncestor(conditionAttributesPane));
dialog.addDialogActionListener(new DialogActionAdapter() { dialog.addDialogActionListener(new DialogActionAdapter() {

10
designer/src/com/fr/design/condition/WidgetHighlightPane.java

@ -6,6 +6,9 @@ import com.fr.design.gui.ibutton.UIButton;
import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.icheckbox.UICheckBox;
import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.icombobox.UIComboBox;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.mainframe.ElementCasePane;
import com.fr.design.widget.CellWidgetCardPane;
import com.fr.design.widget.WidgetManageCardPane;
import com.fr.design.widget.WidgetPane; import com.fr.design.widget.WidgetPane;
import com.fr.form.ui.*; import com.fr.form.ui.*;
import com.fr.general.Inter; import com.fr.general.Inter;
@ -35,7 +38,12 @@ public class WidgetHighlightPane extends ConditionAttrSingleConditionPane<Highli
widgetButton = new UIButton(Inter.getLocText("FR-Designer_Edit")); widgetButton = new UIButton(Inter.getLocText("FR-Designer_Edit"));
widgetButton.addActionListener(new ActionListener() { widgetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) { public void actionPerformed(ActionEvent e) {
final WidgetPane widgetPane = new WidgetPane(); final WidgetPane widgetPane = new WidgetPane() {
@Override
protected CellWidgetCardPane initWidgetCardPane(ElementCasePane pane) {
return new WidgetManageCardPane(pane);
}
};
widgetPane.populate(widget); widgetPane.populate(widget);
BasicDialog dialog = widgetPane.showWindow( BasicDialog dialog = widgetPane.showWindow(
SwingUtilities.getWindowAncestor(conditionAttributesPane)); SwingUtilities.getWindowAncestor(conditionAttributesPane));

5
designer/src/com/fr/design/mainframe/JWorkBook.java

@ -854,6 +854,11 @@ public class JWorkBook extends JTemplate<WorkBook, WorkBookUndoState> {
return ReportHyperlinkGroupPane.getInstance(hyperlinkGroupPaneActionProvider); return ReportHyperlinkGroupPane.getInstance(hyperlinkGroupPaneActionProvider);
} }
@Override
public HyperlinkGroupPane getHyperLinkPaneNoPop(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) {
return ReportHyperlinkGroupPaneNoPop.getInstance(hyperlinkGroupPaneActionProvider);
}
public void setAuthorityMode(boolean isUpMode) { public void setAuthorityMode(boolean isUpMode) {
centerPane.setAuthorityMode(isUpMode); centerPane.setAuthorityMode(isUpMode);
} }

5
designer/src/com/fr/design/mainframe/ReportHyperlinkGroupPane.java

@ -23,7 +23,8 @@ import java.awt.*;
public class ReportHyperlinkGroupPane extends HyperlinkGroupPane { public class ReportHyperlinkGroupPane extends HyperlinkGroupPane {
private static ReportHyperlinkGroupPane singleton; private static ReportHyperlinkGroupPane singleton;
private ReportHyperlinkGroupPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) { // 仅供继承使用,外部通过 getInstance 获取实例
protected ReportHyperlinkGroupPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) {
super(hyperlinkGroupPaneActionProvider); super(hyperlinkGroupPaneActionProvider);
} }
@ -35,7 +36,7 @@ public class ReportHyperlinkGroupPane extends HyperlinkGroupPane {
return singleton; return singleton;
} }
private void refreshPane() { protected void refreshPane() {
ElementCasePane reportPane = ((JWorkBook)HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()).getEditingElementCasePane(); ElementCasePane reportPane = ((JWorkBook)HistoryTemplateListPane.getInstance().getCurrentEditingTemplate()).getEditingElementCasePane();
if (reportPane == null) { if (reportPane == null) {
return; return;

27
designer/src/com/fr/design/mainframe/ReportHyperlinkGroupPaneNoPop.java

@ -0,0 +1,27 @@
package com.fr.design.mainframe;
import com.fr.design.gui.frpane.HyperlinkGroupPaneActionProvider;
/**
* Created by plough on 2017/9/4.
*/
public class ReportHyperlinkGroupPaneNoPop extends ReportHyperlinkGroupPane{
private static ReportHyperlinkGroupPaneNoPop singleton;
private ReportHyperlinkGroupPaneNoPop(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) {
super(hyperlinkGroupPaneActionProvider);
}
public static ReportHyperlinkGroupPaneNoPop getInstance(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) {
if (singleton == null) {
singleton = new ReportHyperlinkGroupPaneNoPop(hyperlinkGroupPaneActionProvider);
}
singleton.refreshPane();
return singleton;
}
@Override
protected boolean isNewStyle() {
return false;
}
}

7
designer/src/com/fr/design/widget/WidgetEventPaneNoPop.java

@ -2,8 +2,6 @@ package com.fr.design.widget;
import com.fr.design.mainframe.ElementCasePane; import com.fr.design.mainframe.ElementCasePane;
import java.awt.*;
/** /**
* 没有悬浮弹窗的控件事件编辑面板 * 没有悬浮弹窗的控件事件编辑面板
* Created by plough on 2017/8/28. * Created by plough on 2017/8/28.
@ -17,9 +15,4 @@ public class WidgetEventPaneNoPop extends WidgetEventPane {
protected boolean isNewStyle() { protected boolean isNewStyle() {
return false; return false;
} }
@Override
protected void popupEditDialog(Point mousePos) {
// no pop, do nothing
}
} }

14
designer_base/src/com/fr/design/gui/controlpane/UIControlPane.java

@ -27,22 +27,17 @@ import java.awt.event.WindowEvent;
public abstract class UIControlPane extends BasicPane implements UnrepeatedNameHelper { public abstract class UIControlPane extends BasicPane implements UnrepeatedNameHelper {
protected static final int SHORT_WIDTH = 30; //每加一个short Divider位置加30 protected static final int SHORT_WIDTH = 30; //每加一个short Divider位置加30
protected JPanel controlUpdatePane; protected JPanel controlUpdatePane;
private ShortCut4JControlPane[] shorts; private ShortCut4JControlPane[] shorts;
private NameableCreator[] creators; private NameableCreator[] creators;
private ToolBarDef toolbarDef; private ToolBarDef toolbarDef;
private UIToolbar toolBar; private UIToolbar toolBar;
private UIToolbar topToolBar; private UIToolbar topToolBar;
protected PopupEditDialog popupEditDialog; protected PopupEditDialog popupEditDialog;
// peter:这是整体的一个cardLayout Pane // peter:这是整体的一个cardLayout Pane
protected CardLayout cardLayout; protected CardLayout cardLayout;
protected JPanel cardPane; protected JPanel cardPane;
protected BasePlot plot; protected BasePlot plot;
public UIControlPane() { public UIControlPane() {
this.initComponentPane(); this.initComponentPane();
} }
@ -128,8 +123,15 @@ public abstract class UIControlPane extends BasicPane implements UnrepeatedNameH
this.add(getLeftPane(), BorderLayout.CENTER); this.add(getLeftPane(), BorderLayout.CENTER);
this.setBorder(BorderFactory.createEmptyBorder(10, 10, 15, 15)); this.setBorder(BorderFactory.createEmptyBorder(10, 10, 15, 15));
} else { } else {
// 增加边框
JPanel leftPaneWrapper = new JPanel(new BorderLayout());
leftPaneWrapper.add(getLeftPane(), BorderLayout.CENTER);
leftPaneWrapper.setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6));
JPanel rightPaneWrapper = new JPanel(new BorderLayout());
rightPaneWrapper.add(cardPane, BorderLayout.CENTER);
rightPaneWrapper.setBorder(BorderFactory.createEmptyBorder(6, 6, 6, 6));
// SplitPane // SplitPane
JSplitPane mainSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, getLeftPane(), cardPane); JSplitPane mainSplitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, leftPaneWrapper, rightPaneWrapper);
mainSplitPane.setBorder(BorderFactory.createLineBorder(GUICoreUtils.getTitleLineBorderColor())); mainSplitPane.setBorder(BorderFactory.createLineBorder(GUICoreUtils.getTitleLineBorderColor()));
mainSplitPane.setOneTouchExpandable(true); mainSplitPane.setOneTouchExpandable(true);
this.add(mainSplitPane, BorderLayout.CENTER); this.add(mainSplitPane, BorderLayout.CENTER);

14
designer_base/src/com/fr/design/gui/controlpane/UIListControlPane.java

@ -390,13 +390,15 @@ public abstract class UIListControlPane extends UIControlPane {
} }
} }
protected void popupEditDialog(Point mousePos) { private void popupEditDialog(Point mousePos) {
Rectangle currentCellBounds = nameableList.getCellBounds(editingIndex, editingIndex); if (isNewStyle()) {
if (editingIndex < 0 || !currentCellBounds.contains(mousePos)) { Rectangle currentCellBounds = nameableList.getCellBounds(editingIndex, editingIndex);
return; if (editingIndex < 0 || !currentCellBounds.contains(mousePos)) {
return;
}
popupEditDialog.setLocation(getPopupDialogLocation());
popupEditDialog.setVisible(true);
} }
popupEditDialog.setLocation(getPopupDialogLocation());
popupEditDialog.setVisible(true);
} }
private Point getPopupDialogLocation() { private Point getPopupDialogLocation() {

7
designer_base/src/com/fr/design/mainframe/JTemplate.java

@ -890,6 +890,13 @@ public abstract class JTemplate<T extends IOFile, U extends BaseUndoState<?>> ex
*/ */
public abstract HyperlinkGroupPane getHyperLinkPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider); public abstract HyperlinkGroupPane getHyperLinkPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider);
/**
* 返回当前支持的超链界面pane
* 没有悬浮弹窗显示为两列
* @return 超链连接界面
*/
public abstract HyperlinkGroupPane getHyperLinkPaneNoPop(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider);
/** /**
* 是否是图表 * 是否是图表
* *

2
designer_form/src/com/fr/design/gui/xpane/FormHyperlinkGroupPane.java

@ -12,7 +12,7 @@ import com.fr.js.EmailJavaScript;
public class FormHyperlinkGroupPane extends HyperlinkGroupPane{ public class FormHyperlinkGroupPane extends HyperlinkGroupPane{
private static FormHyperlinkGroupPane singleton; private static FormHyperlinkGroupPane singleton;
private FormHyperlinkGroupPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) { protected FormHyperlinkGroupPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) {
super(hyperlinkGroupPaneActionProvider); super(hyperlinkGroupPaneActionProvider);
} }

26
designer_form/src/com/fr/design/gui/xpane/FormHyperlinkGroupPaneNoPop.java

@ -0,0 +1,26 @@
package com.fr.design.gui.xpane;
import com.fr.design.gui.frpane.HyperlinkGroupPaneActionProvider;
/**
* Created by plough on 2017/9/5.
*/
public class FormHyperlinkGroupPaneNoPop extends FormHyperlinkGroupPane{
private static FormHyperlinkGroupPaneNoPop singleton;
private FormHyperlinkGroupPaneNoPop(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) {
super(hyperlinkGroupPaneActionProvider);
}
public static FormHyperlinkGroupPaneNoPop getInstance(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) {
if (singleton == null) {
singleton = new FormHyperlinkGroupPaneNoPop(hyperlinkGroupPaneActionProvider);
}
return singleton;
}
@Override
protected boolean isNewStyle() {
return false;
}
}

7
designer_form/src/com/fr/design/mainframe/JForm.java

@ -22,6 +22,7 @@ import com.fr.design.gui.frpane.HyperlinkGroupPaneActionProvider;
import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ilable.UILabel;
import com.fr.design.gui.imenu.UIMenuItem; import com.fr.design.gui.imenu.UIMenuItem;
import com.fr.design.gui.xpane.FormHyperlinkGroupPane; import com.fr.design.gui.xpane.FormHyperlinkGroupPane;
import com.fr.design.gui.xpane.FormHyperlinkGroupPaneNoPop;
import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.design.mainframe.actions.EmbeddedFormExportExportAction; import com.fr.design.mainframe.actions.EmbeddedFormExportExportAction;
import com.fr.design.mainframe.actions.FormMobileAttrAction; import com.fr.design.mainframe.actions.FormMobileAttrAction;
@ -147,10 +148,16 @@ public class JForm extends JTemplate<Form, FormUndoState> implements BaseJForm {
* *
* @return 超链连接界面 * @return 超链连接界面
*/ */
@Override
public HyperlinkGroupPane getHyperLinkPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) { public HyperlinkGroupPane getHyperLinkPane(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) {
return FormHyperlinkGroupPane.getInstance(hyperlinkGroupPaneActionProvider); return FormHyperlinkGroupPane.getInstance(hyperlinkGroupPaneActionProvider);
} }
@Override
public HyperlinkGroupPane getHyperLinkPaneNoPop(HyperlinkGroupPaneActionProvider hyperlinkGroupPaneActionProvider) {
return FormHyperlinkGroupPaneNoPop.getInstance(hyperlinkGroupPaneActionProvider);
}
//表单返回 FORM_TAB or ELEMENTCASE_TAB //表单返回 FORM_TAB or ELEMENTCASE_TAB
public int getEditingReportIndex() { public int getEditingReportIndex() {
return this.index; return this.index;

Loading…
Cancel
Save