From 0a1db37ffbff56c8ff1e2f1b1f5103462e63a0cc Mon Sep 17 00:00:00 2001 From: frharry Date: Wed, 8 Mar 2017 18:10:32 +0800 Subject: [PATCH 1/5] =?UTF-8?q?REPORT-1344=20=E8=A1=A8=E5=8D=95=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=9D=97=E7=BF=BB=E9=A1=B5=E6=94=B9=E8=BF=9B=E5=B9=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B1=80=E9=83=A8=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/dialog/BasicDialog.java | 1 + .../src/com/fr/design/dialog/BasicPane.java | 24 + .../design/designer/creator/XElementCase.java | 4 +- .../com/fr/design/mainframe/FEditToolBar.java | 481 ++++++++++++++++++ .../fr/design/mainframe/FSettingToolBar.java | 84 +++ .../src/com/fr/design/mainframe/FToolBar.java | 68 +++ .../fr/design/mainframe/FToolBarButton.java | 159 ++++++ .../com/fr/design/mainframe/FToolBarPane.java | 233 +++++++++ .../mainframe/FormWebWidgetConstants.java | 54 ++ .../AccessibleECToolBarEditor.java | 57 +++ .../widget/editors/ECToolBarEditor.java | 13 + .../widget/editors/ECToolBarPane.java | 304 +++++++++++ .../widget/wrappers/ECToolBarWrapper.java | 34 ++ 13 files changed, 1515 insertions(+), 1 deletion(-) create mode 100644 designer_form/src/com/fr/design/mainframe/FEditToolBar.java create mode 100644 designer_form/src/com/fr/design/mainframe/FSettingToolBar.java create mode 100644 designer_form/src/com/fr/design/mainframe/FToolBar.java create mode 100644 designer_form/src/com/fr/design/mainframe/FToolBarButton.java create mode 100644 designer_form/src/com/fr/design/mainframe/FToolBarPane.java create mode 100644 designer_form/src/com/fr/design/mainframe/FormWebWidgetConstants.java create mode 100644 designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleECToolBarEditor.java create mode 100644 designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarEditor.java create mode 100644 designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarPane.java create mode 100644 designer_form/src/com/fr/design/mainframe/widget/wrappers/ECToolBarWrapper.java diff --git a/designer_base/src/com/fr/design/dialog/BasicDialog.java b/designer_base/src/com/fr/design/dialog/BasicDialog.java index 703b19205..bc9ec749d 100644 --- a/designer_base/src/com/fr/design/dialog/BasicDialog.java +++ b/designer_base/src/com/fr/design/dialog/BasicDialog.java @@ -13,6 +13,7 @@ public abstract class BasicDialog extends UIDialog { public static final Dimension CHART = new Dimension(760, 560); public static final Dimension MAP_SIZE = new Dimension(760, 450); public static final Dimension UPDATE_ONLINE_SIZE = new Dimension(600,300); + public static final Dimension TOOLBAR_SIZE = new Dimension(660, 327); public BasicDialog(Frame parent) { super(parent); diff --git a/designer_base/src/com/fr/design/dialog/BasicPane.java b/designer_base/src/com/fr/design/dialog/BasicPane.java index eb1b41305..05c6a84f2 100644 --- a/designer_base/src/com/fr/design/dialog/BasicPane.java +++ b/designer_base/src/com/fr/design/dialog/BasicPane.java @@ -251,6 +251,30 @@ public abstract class BasicPane extends JPanel { return dg; } + /** + * 显示窗口 + * + * @param window 窗口 + * @param l 对话框监听器 + * @return 对话框 + */ + public BasicDialog showToolBarWindow(Window window, DialogActionListener l) { + BasicDialog dg; + if (window instanceof Frame) { + dg = new DIALOG((Frame) window); + } else { + dg = new DIALOG((Dialog) window); + } + + if (l != null) { + dg.addDialogActionListener(l); + } + dg.setBasicDialogSize(BasicDialog.TOOLBAR_SIZE); + GUICoreUtils.centerWindow(dg); + dg.setResizable(false); + return dg; + } + protected abstract String title4PopupWindow(); public String getTitle() { diff --git a/designer_form/src/com/fr/design/designer/creator/XElementCase.java b/designer_form/src/com/fr/design/designer/creator/XElementCase.java index a932548cc..f30ddb758 100644 --- a/designer_form/src/com/fr/design/designer/creator/XElementCase.java +++ b/designer_form/src/com/fr/design/designer/creator/XElementCase.java @@ -11,6 +11,7 @@ import com.fr.design.fun.impl.AbstractFormElementCaseEditorProvider; import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.*; import com.fr.design.mainframe.widget.editors.BooleanEditor; +import com.fr.design.mainframe.widget.editors.ECToolBarEditor; import com.fr.design.mainframe.widget.editors.PaddingMarginEditor; import com.fr.design.mainframe.widget.editors.WLayoutBorderStyleEditor; import com.fr.design.mainframe.widget.renderer.LayoutBorderStyleRenderer; @@ -92,11 +93,12 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme public void propertyChange() { initStyle(); } + }), new CRPropertyDescriptor("margin", this.data.getClass()).setEditorClass(PaddingMarginEditor.class) .setI18NName(Inter.getLocText("FR-Layout_Padding")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), - new CRPropertyDescriptor("showToolBar", this.data.getClass()).setEditorClass(BooleanEditor.class) + new CRPropertyDescriptor("ToolBars", this.data.getClass()).setEditorClass(ECToolBarEditor.class) .setI18NName(Inter.getLocText("Form-EC_toolbar")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") }; diff --git a/designer_form/src/com/fr/design/mainframe/FEditToolBar.java b/designer_form/src/com/fr/design/mainframe/FEditToolBar.java new file mode 100644 index 000000000..4ca4ab9c1 --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/FEditToolBar.java @@ -0,0 +1,481 @@ +package com.fr.design.mainframe; + +import com.fr.base.BaseUtils; +import com.fr.design.actions.UpdateAction; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.BasicPane; +import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.gui.ibutton.UIButton; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.itextfield.UITextField; +import com.fr.design.gui.itoolbar.UIToolbar; +import com.fr.design.javascript.JavaScriptActionPane; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.menu.ToolBarDef; +import com.fr.design.style.background.BackgroundPane; +import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.design.widget.IconDefinePane; +import com.fr.form.ui.*; +import com.fr.form.ui.Button; +import com.fr.form.web.button.Export; +import com.fr.general.Background; +import com.fr.general.Inter; +import com.fr.stable.StringUtils; + +import javax.swing.*; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.*; + +/** + * Created by harry on 2017-3-2. + */ +public class FEditToolBar extends BasicPane { + + private JList list; + private DefaultListModel listModel; + private JPanel right; + private CardLayout card; + private ButtonPane bp; + private FToolBarButton lastButton; + private Background background = null; + private UICheckBox defaultCheckBox; + + private ListSelectionListener listSelectionListener = new ListSelectionListener() { + public void valueChanged(ListSelectionEvent evt) { + if (lastButton != null) { + lastButton.setWidget(bp.update()); + } + if (list.getSelectedValue() instanceof FToolBarButton) { + lastButton = (FToolBarButton) list.getSelectedValue(); + if (lastButton.getWidget() instanceof Button) { + card.show(right, "button"); + bp.populate(lastButton.getWidget()); + } else { + bp.populate(lastButton.getWidget()); + card.show(right, "none"); + } + } + } + }; + + + private ActionListener actioner = new ActionListener() { + /** + * + */ + public void actionPerformed(ActionEvent arg0) { + final BackgroundPane backgroundPane = new BackgroundPane(); + BasicDialog dialog = backgroundPane.showWindow(DesignerContext.getDesignerFrame()); + backgroundPane.populate(FEditToolBar.this.background); + dialog.addDialogActionListener(new DialogActionAdapter() { + public void doOk() { + FEditToolBar.this.background = backgroundPane.update(); + if (FEditToolBar.this.background != null) { + FEditToolBar.this.defaultCheckBox.setSelected(false); + } + } + }); + dialog.setVisible(true); + } + }; + + public FEditToolBar() { + initComponent(); + } + + /** + * 初始化 + */ + public void initComponent() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + JPanel left = FRGUIPaneFactory.createBorderLayout_S_Pane(); + listModel = new DefaultListModel(); + list = new JList(listModel); + list.setCellRenderer(render); + left.add(new JScrollPane(list), BorderLayout.CENTER); + if (listModel.getSize() > 0) { + list.setSelectedIndex(0); + } + + ToolBarDef toolbarDef = new ToolBarDef(); + toolbarDef.addShortCut(new MoveUpItemAction()); + toolbarDef.addShortCut(new MoveDownItemAction()); + toolbarDef.addShortCut(new RemoveAction()); + UIToolbar toolBar = ToolBarDef.createJToolBar(); + toolbarDef.updateToolBar(toolBar); + left.add(toolBar, BorderLayout.NORTH); + + right = FRGUIPaneFactory.createCardLayout_S_Pane(); + card = new CardLayout(); + right.setLayout(card); + bp = new ButtonPane(); + right.add("none", FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane()); + right.add("button", bp); + + JSplitPane splitPane = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, true, left, right); + // splitPane.setDividerLocation(left.getMinimumSize().width); + splitPane.setDividerLocation(120); + this.add(splitPane); + list.addListSelectionListener(listSelectionListener); + JPanel backgroundPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); + UIButton bgButton = new UIButton(Inter.getLocText(new String[]{"Background", "Set"})); + defaultCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Default", "Background"})); + bgButton.addActionListener(actioner); + backgroundPane.add(defaultCheckBox); + backgroundPane.add(bgButton); + backgroundPane.setBorder(BorderFactory.createTitledBorder(Inter.getLocText(new String[]{"Background", "Set"}))); + this.add(backgroundPane, BorderLayout.SOUTH); + } + + ListCellRenderer render = new DefaultListCellRenderer() { + public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { + super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); + + if (value instanceof FToolBarButton) { + FToolBarButton button = (FToolBarButton) value; + this.setText(button.getNameOption().optionName()); + this.setIcon(button.getNameOption().optionIcon()); + } + return this; + } + }; + + @Override + protected String title4PopupWindow() { + return Inter.getLocText("FR-Designer_Edit"); + } + + public void populate(FToolBar ftoolbar) { + this.populate(ftoolbar, null); + } + + public void populate(FToolBar ftoolbar, FToolBarButton button) { + if (ftoolbar == null) { + return; + } + for (int i = 0; i < ftoolbar.getButtonlist().size(); i++) { + listModel.addElement(ftoolbar.getButtonlist().get(i)); + } + this.list.validate(); + this.list.repaint(); + if (ftoolbar.getButtonlist().size() > 0) { + this.list.setSelectedIndex(0); + } + if (button != null) { + this.list.setSelectedValue(button, true); + } + this.background = ftoolbar.getBackground(); + + this.defaultCheckBox.setSelected(ftoolbar.isDefault() ? true : false); + } + + public FToolBar update() { + if (this.list.getSelectedIndex() > -1) { + for (int i = 0; i < listModel.getSize(); i++) { + this.list.setSelectedIndex(i); + FToolBarButton toolBarButton = (FToolBarButton) this.list.getSelectedValue(); + Widget widget = this.bp.update(); + toolBarButton.setWidget(widget); + if (widget instanceof Button) { + String iconname = ((Button) widget).getIconName(); + if (StringUtils.isNotBlank(iconname)) { + Image iimage = WidgetManager.getProviderInstance().getIconManager().getIconImage(iconname); + toolBarButton.setIcon(new ImageIcon(iimage)); + } + } + } + } + java.util.List list = new ArrayList(); + for (int i = 0; i < listModel.size(); i++) { + list.add((FToolBarButton) listModel.get(i)); + } + FToolBar ftoolBar = new FToolBar(); + ftoolBar.setButtonlist(list); + + ftoolBar.setDefault(this.defaultCheckBox.isSelected()); + if (!ftoolBar.isDefault()) { + ftoolBar.setBackground(this.background); + } + return ftoolBar; + } + + private class MoveUpItemAction extends UpdateAction { + public MoveUpItemAction() { + this.setName(Inter.getLocText("Utils-Move_Up")); + this.setMnemonic('U'); + this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/control/up.png")); + } + + /** + * + */ + public void actionPerformed(ActionEvent evt) { + int selectedIndex = list.getSelectedIndex(); + if (selectedIndex == -1) { + return; + } + + // 上移 + if (selectedIndex > 0) { + DefaultListModel listModel = (DefaultListModel) list.getModel(); + + Object selecteObj1 = listModel.get(selectedIndex - 1); + listModel.set(selectedIndex - 1, listModel.get(selectedIndex)); + listModel.set(selectedIndex, selecteObj1); + + list.setSelectedIndex(selectedIndex - 1); + list.ensureIndexIsVisible(selectedIndex - 1); + list.validate(); + } + } + } + + private class MoveDownItemAction extends UpdateAction { + public MoveDownItemAction() { + this.setName(Inter.getLocText("Utils-Move_Down")); + this.setMnemonic('D'); + this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/control/down.png")); + } + + /** + * + */ + public void actionPerformed(ActionEvent evt) { + int selectedIndex = list.getSelectedIndex(); + if (selectedIndex == -1) { + return; + } + + // 下移 + if (selectedIndex == -1) { + return; + } + + if (selectedIndex < list.getModel().getSize() - 1) { + DefaultListModel listModel = (DefaultListModel) list.getModel(); + + Object selecteObj1 = listModel.get(selectedIndex + 1); + listModel.set(selectedIndex + 1, listModel.get(selectedIndex)); + listModel.set(selectedIndex, selecteObj1); + + list.setSelectedIndex(selectedIndex + 1); + list.ensureIndexIsVisible(selectedIndex + 1); + list.validate(); + } + } + } + + public class RemoveAction extends UpdateAction { + public RemoveAction() { + this.setName(Inter.getLocText("FR-Designer_Delete")); + this.setSmallIcon(BaseUtils.readIcon("/com/fr/base/images/cell/control/remove.png")); + } + + /** + * 动作 + * @param e 事件 + */ + public void actionPerformed(ActionEvent e) { + int i = list.getSelectedIndex(); + if (i < 0 || !(listModel.getElementAt(i) instanceof FToolBarButton)) { + return; + } + int val = JOptionPane.showConfirmDialog(FEditToolBar.this, Inter.getLocText("FR-Designer_Are_You_Sure_To_Delete_The_Data") + "?", "Message", JOptionPane.YES_NO_OPTION); + if (val != JOptionPane.YES_OPTION) { + return; + } + listModel.removeElementAt(i); + list.validate(); + if (listModel.size() > 0) { + list.setSelectedIndex(0); + } else { + card.show(right, "none"); + } + } + } + + public class ButtonPane extends BasicPane { + private CardLayout card; + private JPanel centerPane; + private UICheckBox icon, text, excelP, excelO; + private Widget widget; + private UITextField nameField; + private IconDefinePane iconPane; + private UIButton button; + private JavaScriptActionPane javaScriptPane; + + public ButtonPane() { + this.initComponents(); + } + + /** + * 初始化元素 + */ + public void initComponents() { + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + JPanel north = FRGUIPaneFactory.createBorderLayout_S_Pane(); + icon = new UICheckBox(Inter.getLocText("FR-Designer_Show_Icon")); + text = new UICheckBox(Inter.getLocText("FR-Designer_Show_Text")); + + north.add(icon, BorderLayout.NORTH); + north.add(text, BorderLayout.CENTER); + + nameField = new UITextField(8); + iconPane = new IconDefinePane(); + javaScriptPane = JavaScriptActionPane.createDefault(); + + double p = TableLayout.PREFERRED; + double rowSize[] = {p, p}; + double columnSize[] = {p, p}; + + Component[][] coms = new Component[][]{{new UILabel(Inter.getLocText(new String[]{"Widget", "Printer-Alias"}) + ":"), nameField}, {new UILabel(Inter.getLocText(new String[]{"Widget", "Icon"}) + ":"), iconPane}}; + + JPanel nameIconPane = TableLayoutHelper.createTableLayoutPane(coms, rowSize, columnSize); + + north.add(nameIconPane, BorderLayout.SOUTH); + + north.setBorder(BorderFactory.createTitledBorder(Inter.getLocText(new String[]{"Form-Button", "Property", "Set"}))); + this.add(north, BorderLayout.NORTH); + JPanel none = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); + centerPane = FRGUIPaneFactory.createCardLayout_S_Pane(); + card = new CardLayout(); + centerPane.setLayout(card); + centerPane.add("custom", getCustomPane()); + centerPane.add("export", getExport()); + centerPane.add("none", none); + + this.add(centerPane, BorderLayout.CENTER); + } + + + private JPanel getCustomPane() { + JPanel customPane = FRGUIPaneFactory.createCenterFlowInnerContainer_S_Pane(); + + button = new UIButton(Inter.getLocText("FR-Designer_User_Defined_Event")); + customPane.add(button); + customPane.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText("FR-Designer_Edit") + "JS", null)); + button.addActionListener(l); + return customPane; + } + + private JPanel getExport() { + JPanel export = FRGUIPaneFactory.createY_AXISBoxInnerContainer_L_Pane(); + // export.setLayout(new BoxLayout(export, BoxLayout.Y_AXIS)); + excelP = new UICheckBox(Inter.getLocText("FR-Designer-Output_Excel_Page")); + excelO = new UICheckBox(Inter.getLocText("FR-Designer-Output_Excel_Simple")); + export.add(excelP); + export.add(Box.createVerticalStrut(2)); + export.add(excelO); + export.add(Box.createVerticalStrut(2)); + + export.setBorder(GUICoreUtils.createTitledBorder(Inter.getLocText(new String[]{"Form-Button", "Property", "Set"}), null)); + return export; + } + + @Override + protected String title4PopupWindow() { + return "Button"; + } + + ActionListener l = new ActionListener() { + public void actionPerformed(ActionEvent e) { + if (!(widget instanceof CustomToolBarButton)) { + return; + } + if (javaScriptPane == null || ((CustomToolBarButton)widget).getJSImpl() == null) { + javaScriptPane = JavaScriptActionPane.createDefault(); + } + javaScriptPane.setPreferredSize(new Dimension(750, 500)); + BasicDialog dialog = javaScriptPane.showWindow(SwingUtilities.getWindowAncestor(ButtonPane.this)); + dialog.addDialogActionListener(new DialogActionAdapter() { + @Override + public void doOk() { + ((CustomToolBarButton) widget).setJSImpl(javaScriptPane.updateBean()); + } + }); + dialog.setVisible(true); + } + }; + + /** + * 更新 + * @param widget 对应组件 + */ + public void populate(Widget widget) { + this.widget = widget; + card.show(centerPane, "none"); + if (widget instanceof Button) { + populateDefault(); + } + if (widget instanceof Export) { + populateExport(); + } else if (widget instanceof CustomToolBarButton) { + populateCustomToolBarButton(); + } + } + + private void populateExport(){ + card.show(centerPane, "export"); + Export export = (Export) widget; + this.excelP.setSelected(export.isExcelPAvailable()); + this.excelO.setSelected(export.isExcelOAvailable()); + } + + private void populateCustomToolBarButton(){ + card.show(centerPane, "custom"); + CustomToolBarButton customToolBarButton = (CustomToolBarButton) widget; + if (customToolBarButton.getJSImpl() != null) { + this.javaScriptPane.populateBean(customToolBarButton.getJSImpl()); + } + } + + + + private void populateDefault(){ + Button button = (Button) widget; + this.icon.setSelected(button.isShowIcon()); + this.text.setSelected(button.isShowText()); + this.nameField.setText(button.getText()); + this.iconPane.populate(((Button) widget).getIconName()); + } + + /** + * 更新 + * + * @return 对应组件 + */ + public Widget update() { + if (widget instanceof Export) { + updateExport(); + } else if (widget instanceof CustomToolBarButton) { + ((CustomToolBarButton) widget).setJSImpl(this.javaScriptPane.updateBean()); + } + if (widget instanceof Button) { + updateDefault(); + } + + return widget; + } + + private void updateDefault(){ + ((Button) widget).setShowIcon(this.icon.isSelected()); + ((Button) widget).setShowText(this.text.isSelected()); + ((Button) widget).setText(this.nameField.getText()); + ((Button) widget).setIconName(this.iconPane.update()); + } + + + private void updateExport(){ + Export export = (Export) widget; + export.setExcelPAvailable(this.excelP.isSelected()); + export.setExcelOAvailable(this.excelO.isSelected()); + } + } +} diff --git a/designer_form/src/com/fr/design/mainframe/FSettingToolBar.java b/designer_form/src/com/fr/design/mainframe/FSettingToolBar.java new file mode 100644 index 000000000..00f9dae61 --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/FSettingToolBar.java @@ -0,0 +1,84 @@ +package com.fr.design.mainframe; + +import com.fr.base.BaseUtils; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.gui.ibutton.UIButton; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.general.Inter; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +/** + * Created by harry on 2017-3-2. + */ +public class FSettingToolBar extends JPanel { + private Icon setIcon = BaseUtils.readIcon("com/fr/design/images/toolbarbtn/toolbarbtnsetting.png"); + private Icon delIcon = BaseUtils.readIcon("com/fr/design/images/toolbarbtn/toolbarbtnclear.png"); + private UIButton setButton; + private UIButton delButton; + private FToolBarPane toolBarPane; + + public FSettingToolBar(String name,FToolBarPane toolBarPane) { + super(); + this.setBackground(Color.lightGray); + this.add(new UILabel(name)); + this.toolBarPane = toolBarPane; + setButton = GUICoreUtils.createTransparentButton(setIcon, setIcon, setIcon); + setButton.setToolTipText(Inter.getLocText("Edit_Button_ToolBar")); + setButton.setAction(new SetAction()); + delButton = GUICoreUtils.createTransparentButton(delIcon, delIcon, delIcon); + delButton.setToolTipText(Inter.getLocText("Remove_Button_ToolBar")); + delButton.setAction(new DelAction()); + this.add(setButton); + this.add(delButton); + } + + public void setEnabled(boolean b) { + setButton.setEnabled(b); + delButton.setEnabled(b); + } + + public void addActionListener(ActionListener l){ + setButton.addActionListener(l); + delButton.addActionListener(l); + } + + private class SetAction extends AbstractAction { + + public SetAction() { + this.putValue(Action.SMALL_ICON, setIcon); + } + + @Override + public void actionPerformed(ActionEvent arg0) { + final FEditToolBar tb = new FEditToolBar(); + tb.populate(toolBarPane.getFToolBar()); + BasicDialog dialog = tb.showWindow(DesignerContext.getDesignerFrame()); + dialog.addDialogActionListener(new DialogActionAdapter() { + public void doOk() { + toolBarPane.setFToolBar(tb.update()); + } + }); + dialog.setVisible(true); + } + } + + private class DelAction extends AbstractAction { + + public DelAction() { + this.putValue(Action.SMALL_ICON, delIcon); + } + + @Override + public void actionPerformed(ActionEvent arg0) { + toolBarPane.removeAll(); + toolBarPane.removeButtonList(); + toolBarPane.repaint(); + } + } +} diff --git a/designer_form/src/com/fr/design/mainframe/FToolBar.java b/designer_form/src/com/fr/design/mainframe/FToolBar.java new file mode 100644 index 000000000..5eb519680 --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/FToolBar.java @@ -0,0 +1,68 @@ +package com.fr.design.mainframe; + +import com.fr.form.ui.ToolBar; +import com.fr.form.ui.Widget; +import com.fr.general.Background; + +import java.util.ArrayList; +import java.util.List; + +/** + * Created by harry on 2017-3-2. + */ +public class FToolBar { + private List buttonlist = new ArrayList(); + private Background background = null; + private boolean isDefault = true; + + public List getButtonlist() { + return buttonlist; + } + + public void setButtonlist(List buttonlist) { + if (buttonlist == null || buttonlist.size() < 0) { + this.buttonlist = new ArrayList(); + } else { + this.buttonlist = buttonlist; + } + } + + public void addButton(FToolBarButton toolBarButton) { + this.buttonlist.add(toolBarButton); + } + + public void removeButton(FToolBarButton toolBarButton) { + this.buttonlist.remove(toolBarButton); + } + + public void clearButton() { + this.buttonlist.clear(); + } + + public Background getBackground() { + return background; + } + + public void setBackground(Background background) { + this.background = background; + } + + public boolean isDefault() { + return isDefault; + } + + public void setDefault(boolean isDefault) { + this.isDefault = isDefault; + } + + public ToolBar getToolBar() { + Widget[] n = new Widget[this.getButtonlist().size()]; + for (int j = 0; j < this.getButtonlist().size(); j++) { + n[j] = this.getButtonlist().get(j).getWidget(); + } + ToolBar toolBar = new ToolBar(n); + toolBar.setBackground(this.background); + toolBar.setDefault(this.isDefault); + return toolBar; + } +} diff --git a/designer_form/src/com/fr/design/mainframe/FToolBarButton.java b/designer_form/src/com/fr/design/mainframe/FToolBarButton.java new file mode 100644 index 000000000..c65b31757 --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/FToolBarButton.java @@ -0,0 +1,159 @@ +package com.fr.design.mainframe; + +import com.fr.base.BaseUtils; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.gui.core.WidgetOption; +import com.fr.design.gui.ibutton.UIButton; +import com.fr.form.ui.Widget; +import com.fr.form.ui.WidgetManager; +import com.fr.stable.StringUtils; + +import javax.swing.*; +import java.awt.*; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; + +/** + * Created by harry on 2017-3-2. + */ +public class FToolBarButton extends UIButton implements MouseListener { + private Widget widget; + private WidgetOption no; + + public FToolBarButton(Icon icon, Widget widget) { + this(null, icon, widget); + } + + public FToolBarButton(String text, Icon icon, Widget widget) { + super(text, icon); + this.widget = widget; + if (widget instanceof com.fr.form.ui.Button) { + com.fr.form.ui.Button button = (com.fr.form.ui.Button) widget; + String iconName = button.getIconName(); + if (StringUtils.isNotEmpty(iconName)) { + Image iimage = WidgetManager.getProviderInstance().getIconManager().getIconImage(iconName); + if (iimage != null) { + setIcon(new ImageIcon(iimage)); + } + } + } + this.addMouseListener(this); + setMargin(new Insets(0, 0, 0, 0)); + } + + + /** + * 改变按钮的权限细粒度状态 + * + * @param selectedRole 选择的角色 + * @param isVisible 是否可见 + */ + public void changeAuthorityState(String selectedRole, boolean isVisible) { + this.widget.changeOnlyVisibleAuthorityState(selectedRole, isVisible); + } + + /** + * 是都做过权限细粒度 + * + * @param role 选择的角色 + * @return 若是对应的该角色做过权限细粒度,则返回true + */ + public boolean isDoneAuthorityEdited(String role) { + return this.widget.isDoneVisibleAuthority(role); + } + + public Widget getWidget() { + return this.widget; + } + + + public void setWidget(Widget widget) { + this.widget = widget; + } + + public WidgetOption getNameOption() { + return this.no; + } + + public void setNameOption(WidgetOption no) { + this.no = no; + } + + + protected void paintBorder(Graphics g) { + this.setBorderType(UIButton.NORMAL_BORDER); + super.paintBorder(g); + } + + /** + * 处理鼠标点击事件 + * + * @param e 鼠标点击事件 + */ + public void mouseClicked(MouseEvent e) { + if (BaseUtils.isAuthorityEditing()) { + auhtorityMouseAction(); + return; + } + if (e.getClickCount() >= 2) { + if (this.getParent() instanceof FToolBarPane) { + final FToolBarPane tb = (FToolBarPane) this.getParent(); + final FEditToolBar etb = new FEditToolBar(); + etb.populate(tb.getFToolBar(), this); + BasicDialog dialog = etb.showWindow(DesignerContext.getDesignerFrame()); + dialog.addDialogActionListener(new DialogActionAdapter() { + public void doOk() { + tb.setFToolBar(etb.update()); + } + }); + dialog.setVisible(true); + } + } + } + + + private void auhtorityMouseAction() { + if (this.getParent() instanceof FToolBarPane && this.isEnabled()) { + this.setSelected(!this.isSelected()); + + } + + } + + /** + * 鼠标进入事件 + * + * @param e 鼠标进入事件 + */ + public void mouseEntered(MouseEvent e) { + + } + + /** + * 鼠标退出事件 + * + * @param e 鼠标退出事件 + */ + public void mouseExited(MouseEvent e) { + + } + + /** + * 鼠标按下事件 + * + * @param e 鼠标事件 + */ + public void mousePressed(MouseEvent e) { + + } + + /** + * 鼠标释放事件 + * + * @param e 鼠标事件 + */ + public void mouseReleased(MouseEvent e) { + + } +} diff --git a/designer_form/src/com/fr/design/mainframe/FToolBarPane.java b/designer_form/src/com/fr/design/mainframe/FToolBarPane.java new file mode 100644 index 000000000..f58651bde --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/FToolBarPane.java @@ -0,0 +1,233 @@ +package com.fr.design.mainframe; + +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.gui.core.WidgetOption; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.form.ui.ToolBar; +import com.fr.form.ui.Widget; + +import javax.swing.*; +import java.awt.*; +import java.awt.datatransfer.DataFlavor; +import java.awt.datatransfer.UnsupportedFlavorException; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.util.List; + +/** + * Created by harry on 2017-3-2. + */ +public class FToolBarPane extends BasicBeanPane { + + private FToolBar ftoolbar = new FToolBar(); + + public FToolBarPane() { + super(); + this.initComponent(); + } + + + /** + * 添加鼠标监听 + * + * @param mouselistener 鼠标监听 + */ + public void addAuthorityListener(MouseListener mouselistener) { + List list = ftoolbar.getButtonlist(); + for (int i = 0; i < list.size(); i++) { + list.get(i).addMouseListener(mouselistener); + } + } + + public FToolBarPane(FToolBarButton button) { + super(); + this.initComponent(); + this.add(button); + } + + /** + * 初始化组件 + */ + public void initComponent() { + this.addMouseListener(listener); + this.setLayout(FRGUIPaneFactory.createBoxFlowLayout()); + this.setTransferHandler(new ToolBarHandler(TransferHandler.COPY)); + this.setBorder(BorderFactory.createTitledBorder("")); + } + + /** + * 删除鼠标事件 + */ + public void removeDefaultMouseListener() { + this.removeMouseListener(listener); + } + + @Override + protected String title4PopupWindow() { + return "Toolbar"; + } + + public void setSelectedButton(FToolBarButton button) { + this.ftoolbar.addButton(button); + } + + /** + * 添加组件 + * + * @param comp 组件 + * + * @return 被添加的组件 + */ + public Component add(Component comp) { + if (comp instanceof FToolBarButton) { + this.ftoolbar.addButton((FToolBarButton) comp); + } + return super.add(comp); + } + + private Component addComp(Component comp) { + return super.add(comp); + } + + + public void removeButtonList() { + this.ftoolbar.clearButton(); + } + + protected void setFToolBar(FToolBar ftoolbar) { + if (ftoolbar == null) { + ftoolbar = new FToolBar(); + } + this.ftoolbar = ftoolbar; + this.setToolBar(this.ftoolbar.getButtonlist()); + } + + public List getToolBarButtons() { + return ftoolbar.getButtonlist(); + } + + protected FToolBar getFToolBar() { + return this.ftoolbar; + } + + public boolean isEmpty() { + return this.ftoolbar.getButtonlist().size() <= 0; + } + + private void setToolBar(List list) { + if (list == null || list.size() < 0) { + return; + } + this.removeAll(); + for (int i = 0; i < list.size(); i++) { + this.addComp(list.get(i)); + } + this.validate(); + this.repaint(); + + } + + @Override + public void populateBean(ToolBar toolbar) { + this.removeAll(); + this.getFToolBar().clearButton(); + for (int j = 0; j < toolbar.getWidgetSize(); j++) { + Widget widget = toolbar.getWidget(j); + WidgetOption no = WidgetOption.getToolBarButton(widget.getClass()); + if (no == null){ + //如果装了什么插件, 放到了工具栏上, 后来删除了插件, 模板里还存着之前的控件 + continue; + } + + FToolBarButton button = new FToolBarButton(no.optionIcon(), widget); + button.setNameOption(no); + this.add(button); + this.validate(); + this.repaint(); + } + this.getFToolBar().setBackground(toolbar.getBackground()); + this.getFToolBar().setDefault(toolbar.isDefault()); + } + + @Override + public ToolBar updateBean() { + return this.ftoolbar.getToolBar(); + } + + MouseListener listener = new MouseAdapter() { + @Override + public void mouseClicked(MouseEvent e) { + if (e.getClickCount() >= 2 && !SwingUtilities.isRightMouseButton(e)) { + final FEditToolBar tb = new FEditToolBar(); + tb.populate(getFToolBar()); + BasicDialog dialog = tb.showWindow(SwingUtilities.getWindowAncestor(FToolBarPane.this)); + dialog.addDialogActionListener(new DialogActionAdapter() { + @Override + public void doOk() { + FToolBarPane.this.setFToolBar(tb.update()); + } + }); + dialog.setVisible(true); + } + } + }; + + + /* + * 拖拽属性设置 + */ + private class ToolBarHandler extends TransferHandler { + private int action; + + public ToolBarHandler(int action) { + this.action = action; + } + + + @Override + public boolean canImport(TransferHandler.TransferSupport support) { + if (!support.isDrop()) { + return false; + } + + if (!support.isDataFlavorSupported(DataFlavor.stringFlavor)) { + return false; + } + + boolean actionSupported = (action & support.getSourceDropActions()) == action; + if (actionSupported) { + support.setDropAction(action); + return true; + } + + return false; + } + + @Override + public boolean importData(TransferHandler.TransferSupport support) { + if (!canImport(support)) { + return false; + } + WidgetOption data; + try { + data = (WidgetOption) support.getTransferable().getTransferData(DataFlavor.stringFlavor); + } catch (UnsupportedFlavorException e) { + return false; + } catch (java.io.IOException e) { + return false; + } + + Widget widget = data.createWidget(); + FToolBarButton btn = new FToolBarButton(data.optionIcon(), widget); + btn.setNameOption(data); + FToolBarPane.this.add(btn); + FToolBarPane.this.validate(); + FToolBarPane.this.repaint(); + return true; + } + + } +} diff --git a/designer_form/src/com/fr/design/mainframe/FormWebWidgetConstants.java b/designer_form/src/com/fr/design/mainframe/FormWebWidgetConstants.java new file mode 100644 index 000000000..e94abdc99 --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/FormWebWidgetConstants.java @@ -0,0 +1,54 @@ +package com.fr.design.mainframe; + +import com.fr.base.BaseUtils; +import com.fr.design.gui.core.WidgetOption; +import com.fr.design.gui.core.WidgetOptionFactory; +import com.fr.form.ui.CustomToolBarButton; +import com.fr.form.web.button.ExcelO; +import com.fr.form.web.button.ExcelP; +import com.fr.form.web.button.Export; +import com.fr.form.web.button.page.*; +import com.fr.general.Inter; + +/** + * Created by harry on 2017-3-3. + */ +public class FormWebWidgetConstants { + + private FormWebWidgetConstants() { + } + + public static WidgetOption[] getFormECToolBarInstance() { + return new WidgetOption[]{FIRST, PREVIOUS, PAGENAVI, NEXT, LAST, EXPORT, EXCELP, EXCELO, CUSTOM_BUTTON}; + } + + // 当前页/总页数 + public static final WidgetOption PAGENAVI = WidgetOptionFactory.createByWidgetClass(Inter.getLocText(new String[]{"HJS-Current_Page", "HF-Number_of_Page"}, new String[]{"/", ""}), + BaseUtils.readIcon("/com/fr/web/images/pageNumber.png"), PageNavi.class); + // 首页 + public static final WidgetOption FIRST = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_ReportServerP-First"), BaseUtils.readIcon("/com/fr/web/images/first.png"), + First.class); + // 末页 + public static final WidgetOption LAST = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_ReportServerP-Last"), BaseUtils.readIcon("/com/fr/web/images/last.png"), + Last.class); + // 前一页 + public static final WidgetOption PREVIOUS = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_ReportServerP-Previous"), + BaseUtils.readIcon("/com/fr/web/images/previous.png"), Previous.class); + // 后一页 + public static final WidgetOption NEXT = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_ReportServerP-Next"), BaseUtils.readIcon("/com/fr/web/images/next.png"), + Next.class); + + // 导出成Excel 分页导出 + public static final WidgetOption EXCELP = WidgetOptionFactory.createByWidgetClass(Inter.getLocText(new String[]{"Excel", "FR-Designer_Export_Excel_Page"}, new String[]{"(", ")"}), + BaseUtils.readIcon("/com/fr/web/images/excel.png"), ExcelP.class); + // 导出成Excel 原样导出 + public static final WidgetOption EXCELO = WidgetOptionFactory.createByWidgetClass(Inter.getLocText(new String[]{"Excel", "FR-Designer_Export_Excel_Simple"}, new String[]{"(", ")"}), + BaseUtils.readIcon("/com/fr/web/images/excel.png"), ExcelO.class); + // 导出 + public static final WidgetOption EXPORT = WidgetOptionFactory + .createByWidgetClass(Inter.getLocText("FR-Engine_Export"), BaseUtils.readIcon("/com/fr/web/images/export.png"), Export.class); + + public static final WidgetOption CUSTOM_BUTTON = WidgetOptionFactory + .createByWidgetClass(Inter.getLocText(new String[]{"Custom", "Form-Button"}), CustomToolBarButton.class); + +} diff --git a/designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleECToolBarEditor.java b/designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleECToolBarEditor.java new file mode 100644 index 000000000..e7bf4662f --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleECToolBarEditor.java @@ -0,0 +1,57 @@ +package com.fr.design.mainframe.widget.accessibles; + +import com.fr.design.dialog.BasicDialog; +import com.fr.design.dialog.DialogActionAdapter; +import com.fr.design.gui.core.WidgetOption; +import com.fr.design.mainframe.FormWebWidgetConstants; +import com.fr.design.mainframe.widget.editors.ECToolBarPane; +import com.fr.design.mainframe.widget.wrappers.ECToolBarWrapper; +import com.fr.form.web.FToolBarManager; +import com.fr.stable.ArrayUtils; + +import javax.swing.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +/** + * Created by harry on 2017-2-23. + */ +public class AccessibleECToolBarEditor extends UneditableAccessibleEditor { + private ECToolBarPane pane; + + public AccessibleECToolBarEditor() { + super(new ECToolBarWrapper()); + } + + @Override + protected void showEditorPane() { + if (pane == null) { + pane = new ECToolBarPane(); + pane.setDefaultToolBar(getDefaultToolBarManager(), getToolBarInstance()); + } + BasicDialog dlg = pane.showToolBarWindow(SwingUtilities.getWindowAncestor(this), new DialogActionAdapter() { + + @Override + public void doOk() { + setValue(pane.updateBean()); + fireStateChanged(); + } + }); + FToolBarManager[] managers = (FToolBarManager[]) getValue(); + pane.setCheckBoxSelected(ArrayUtils.isNotEmpty(managers)); + pane.populateBean((FToolBarManager[]) getValue()); + dlg.setVisible(true); + } + + private FToolBarManager getDefaultToolBarManager() { + return FToolBarManager.createDefaultToolBar(); + } + + private WidgetOption[] getToolBarInstance() { + List defaultOptions = Arrays.asList(FormWebWidgetConstants.getFormECToolBarInstance()); + List options = new ArrayList(); + options.addAll(defaultOptions); + return options.toArray(new WidgetOption[options.size()]); + } +} diff --git a/designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarEditor.java b/designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarEditor.java new file mode 100644 index 000000000..eea19ced7 --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarEditor.java @@ -0,0 +1,13 @@ +package com.fr.design.mainframe.widget.editors; + +import com.fr.design.mainframe.widget.accessibles.AccessibleECToolBarEditor; +import com.fr.design.mainframe.widget.accessibles.AccessiblePropertyEditor; + +/** + * Created by harry on 2017-2-23. + */ +public class ECToolBarEditor extends AccessiblePropertyEditor { + public ECToolBarEditor() { + super(new AccessibleECToolBarEditor()); + } +} diff --git a/designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarPane.java b/designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarPane.java new file mode 100644 index 000000000..ea2bbe7a4 --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarPane.java @@ -0,0 +1,304 @@ +package com.fr.design.mainframe.widget.editors; + +import com.fr.base.BaseUtils; +import com.fr.design.beans.BasicBeanPane; +import com.fr.design.gui.core.WidgetOption; +import com.fr.design.gui.ibutton.UIButton; +import com.fr.design.gui.icheckbox.UICheckBox; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.layout.FRGUIPaneFactory; +import com.fr.design.mainframe.DesignerContext; +import com.fr.design.mainframe.FSettingToolBar; +import com.fr.design.mainframe.FToolBarButton; +import com.fr.design.mainframe.FToolBarPane; +import com.fr.form.ui.Widget; +import com.fr.form.web.FLocation; +import com.fr.form.web.FToolBarManager; +import com.fr.general.Inter; +import com.fr.stable.ArrayUtils; +import com.fr.stable.Constants; +import com.fr.stable.StringUtils; + +import javax.swing.*; +import javax.swing.table.DefaultTableCellRenderer; +import javax.swing.table.DefaultTableModel; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.MouseAdapter; +import java.awt.event.MouseEvent; +import java.awt.image.ImageObserver; +import java.util.*; +import java.util.List; + +/** + * Created by harry on 2017-2-23. + */ +public class ECToolBarPane extends BasicBeanPane { + private static final int COLUMN = 2; + private int row = 6; + private DefaultTableModel toolbarButtonTableModel; + private JTable layoutTable; + private UICheckBox isUseToolBarCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Use_ToolBar") + ":"); // 是否使用工具栏 + + private FToolBarPane northToolBar; + private FToolBarPane southToolBar; + private FToolBarManager defaultToolBar; + + + public ECToolBarPane() { + toolbarButtonTableModel = new TableModel(row ,COLUMN); + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + JPanel north = FRGUIPaneFactory.createBorderLayout_S_Pane(); + UIButton defaultButton = new UIButton(Inter.getLocText("FR-Designer_Restore_Default")); + // 恢复默认按钮 + defaultButton.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent e) { + northToolBar.removeButtonList(); + northToolBar.removeAll(); + southToolBar.removeButtonList(); + southToolBar.removeAll(); + if (defaultToolBar == null) { + return; + } + FToolBarManager toolBarManager = defaultToolBar; + toolBarManager.setToolBarLocation(FLocation.createTopEmbedLocation()); + FToolBarManager[] tbm = new FToolBarManager[] { toolBarManager }; + populateBean(tbm); + ECToolBarPane.this.repaint(); + } + }); + + north.add(isUseToolBarCheckBox, BorderLayout.WEST); + JPanel aa = FRGUIPaneFactory.createRightFlowInnerContainer_S_Pane(); + aa.add(defaultButton); + north.add(aa, BorderLayout.CENTER); + this.add(north, BorderLayout.NORTH); + + northToolBar = new FToolBarPane(); + northToolBar.setPreferredSize(new Dimension(ImageObserver.WIDTH, 26)); + northToolBar.setBackground(Color.lightGray); + + UIButton topButton = new UIButton(BaseUtils.readIcon("com/fr/design/images/arrow/arrow_up.png")); + topButton.setBorder(null); + topButton.setOpaque(false); + topButton.setContentAreaFilled(false); + topButton.setFocusPainted(false); + topButton.setRequestFocusEnabled(false); + topButton.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + if (isSelectedtable()) { + WidgetOption no = (WidgetOption)layoutTable.getValueAt(layoutTable.getSelectedRow(), layoutTable.getSelectedColumn()); + Widget widget = no.createWidget(); + FToolBarButton tb = new FToolBarButton(no.optionIcon(), widget); + tb.setNameOption(no); + northToolBar.add(tb); + northToolBar.validate(); + northToolBar.repaint(); + } else { + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_ChooseOneButton")); + } + } + }); + + UIButton downButton = new UIButton(BaseUtils.readIcon("com/fr/design/images/arrow/arrow_down.png")); + downButton.setBorder(null); + downButton.setMargin(null); + downButton.setOpaque(false); + downButton.setContentAreaFilled(false); + downButton.setFocusPainted(false); + downButton.setRequestFocusEnabled(false); + downButton.addActionListener(new ActionListener() { + + @Override + public void actionPerformed(ActionEvent e) { + if (isSelectedtable()) { + WidgetOption no = (WidgetOption)layoutTable.getValueAt(layoutTable.getSelectedRow(), layoutTable.getSelectedColumn()); + Widget widget = no.createWidget(); + FToolBarButton tb = new FToolBarButton(no.optionIcon(), widget); + tb.setNameOption(no); + southToolBar.add(tb); + southToolBar.validate(); + southToolBar.repaint(); + } else { + JOptionPane.showMessageDialog(DesignerContext.getDesignerFrame(), Inter.getLocText("FR-Designer_ChooseOneButton")); + } + } + }); + + initLayoutTable(); + + JPanel center = FRGUIPaneFactory.createBorderLayout_S_Pane(); + center.setBackground(Color.white); + center.add(topButton, BorderLayout.NORTH); + JPanel small = FRGUIPaneFactory.createBorderLayout_S_Pane(); + small.setBackground(Color.white); + small.add(new UILabel(StringUtils.BLANK), BorderLayout.NORTH); + small.add(layoutTable, BorderLayout.CENTER); + center.add(small, BorderLayout.CENTER); + center.add(downButton, BorderLayout.SOUTH); + southToolBar = new FToolBarPane(); + southToolBar.setPreferredSize(new Dimension(ImageObserver.WIDTH, 26)); + southToolBar.setBackground(Color.lightGray); + JPanel movePane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + JPanel northContentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + FSettingToolBar top = new FSettingToolBar(Inter.getLocText("FR-Designer_ToolBar_Top"), northToolBar); + northContentPane.add(top, BorderLayout.EAST); + northContentPane.add(northToolBar, BorderLayout.CENTER); + northContentPane.setBackground(Color.lightGray); + + JPanel southContentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); + FSettingToolBar bottom = new FSettingToolBar(Inter.getLocText("FR-Designer_ToolBar_Bottom"), southToolBar); + southContentPane.add(bottom, BorderLayout.EAST); + southContentPane.add(southToolBar, BorderLayout.CENTER); + southContentPane.setBackground(Color.lightGray); + + movePane.add(northContentPane, BorderLayout.NORTH); + movePane.add(center, BorderLayout.CENTER); + movePane.add(southContentPane, BorderLayout.SOUTH); + + this.add(new JScrollPane(movePane), BorderLayout.CENTER); + + isUseToolBarCheckBox.setSelected(false); + } + + private void initLayoutTable() { + layoutTable = new JTable(toolbarButtonTableModel); + layoutTable.setDefaultRenderer(Object.class, tableRenderer); + layoutTable.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + layoutTable.setColumnSelectionAllowed(false); + layoutTable.setRowSelectionAllowed(false); + layoutTable.setBackground(Color.white); + int columnWidth = Integer.parseInt(Inter.getLocText("FR-Designer_LayoutTable_Column_Width")); + for (int i = 0; i < layoutTable.getColumnModel().getColumnCount(); i++) { + layoutTable.getColumnModel().getColumn(i).setPreferredWidth(columnWidth); + } + layoutTable.addMouseListener(new MouseAdapter() { + public void mouseClicked(MouseEvent e) { + if (e.getClickCount() > 1 && !SwingUtilities.isRightMouseButton(e)) { + WidgetOption no = (WidgetOption)layoutTable.getValueAt(layoutTable.getSelectedRow(), layoutTable.getSelectedColumn()); + Widget widget = no.createWidget(); + FToolBarButton tb = new FToolBarButton(no.optionIcon(), widget); + tb.setNameOption(no); + northToolBar.add(tb); + northToolBar.validate(); + northToolBar.repaint(); + } + } + }); + } + + private boolean isSelectedtable() { + for (int i = 0; i < layoutTable.getColumnCount(); i++) { + if (layoutTable.isColumnSelected(i)) { + return true; + } + } + return false; + } + + /** + * 是否被选中 + * @return 同上 + */ + public boolean isUseToolbar() { + return this.isUseToolBarCheckBox.isSelected(); + } + + public void setDefaultToolBar(FToolBarManager defaultToolBar, WidgetOption[] buttonArray) { + this.defaultToolBar = defaultToolBar; + if (buttonArray != null) { + for (int i = 0; i < buttonArray.length; i++) { + toolbarButtonTableModel.setValueAt(buttonArray[i], i % row, i / row); + } + } + + } + + DefaultTableCellRenderer tableRenderer = new DefaultTableCellRenderer() { + @Override + public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) { + super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column); + + if (value instanceof WidgetOption) { + WidgetOption nameOption = (WidgetOption)value; + this.setText(nameOption.optionName()); + + Icon icon = nameOption.optionIcon(); + if (icon != null) { + this.setIcon(icon); + } + } + if (value == null) { + this.setText(StringUtils.EMPTY); + this.setIcon(null); + } + return this; + } + }; + + @Override + protected String title4PopupWindow() { + return Inter.getLocText(new String[]{"Form-EC_toolbar", "Set"}); + } + + public void setCheckBoxSelected(boolean b) { + this.isUseToolBarCheckBox.setSelected(b); + } + + @Override + public void populateBean(FToolBarManager[] toolBarManager) { + if (ArrayUtils.isEmpty(toolBarManager)) { + defaultToolBar.setToolBarLocation(FLocation.createTopEmbedLocation()); + toolBarManager = new FToolBarManager[] { defaultToolBar }; + } + if (ArrayUtils.isEmpty(toolBarManager)) { + return; + } + for (int i = 0; i < toolBarManager.length; i++) { + FLocation location = toolBarManager[i].getToolBarLocation(); + if (location instanceof FLocation.Embed) { + if (((FLocation.Embed)location).getPosition() == Constants.TOP) { + northToolBar.populateBean(toolBarManager[i].getToolBar()); + } else if (((FLocation.Embed)location).getPosition() == Constants.BOTTOM) { + southToolBar.populateBean(toolBarManager[i].getToolBar()); + } + } + } + } + + @Override + public FToolBarManager[] updateBean() { + if(!isUseToolbar()){ + return new FToolBarManager[0]; + } + List toolBarManagerList = new ArrayList(); + if (!northToolBar.isEmpty()) { + FToolBarManager north = new FToolBarManager(); + north.setToolBar(northToolBar.updateBean()); + north.setToolBarLocation(FLocation.createTopEmbedLocation()); + toolBarManagerList.add(north); + } + + if (!southToolBar.isEmpty()) { + FToolBarManager south = new FToolBarManager(); + south.setToolBar(southToolBar.updateBean()); + south.setToolBarLocation(FLocation.createBottomEmbedLocation()); + toolBarManagerList.add(south); + } + return toolBarManagerList.toArray(new FToolBarManager[toolBarManagerList.size()]); + } + + private class TableModel extends DefaultTableModel { + public TableModel(int i, int j) { + super(i, j); + } + + // 禁止jtable的双击编辑功能 + public boolean isCellEditable(int row, int column) { + return false; + } + } +} diff --git a/designer_form/src/com/fr/design/mainframe/widget/wrappers/ECToolBarWrapper.java b/designer_form/src/com/fr/design/mainframe/widget/wrappers/ECToolBarWrapper.java new file mode 100644 index 000000000..5faf54348 --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/widget/wrappers/ECToolBarWrapper.java @@ -0,0 +1,34 @@ +package com.fr.design.mainframe.widget.wrappers; + +import com.fr.design.Exception.ValidationException; +import com.fr.design.designer.properties.Decoder; +import com.fr.design.designer.properties.Encoder; +import com.fr.form.web.FToolBarManager; +import com.fr.general.Inter; + +/** + * Created by harry on 2017-3-1. + */ +public class ECToolBarWrapper implements Encoder, Decoder { + @Override + public Object decode(String txt) { + return null; + } + + @Override + public void validate(String txt) throws ValidationException { + + } + + @Override + public String encode(Object v) { + if (v == null) { + return null; + } + FToolBarManager[] toolBarManager = (FToolBarManager[])v; + if (toolBarManager.length != 0) { + return Inter.getLocText("FR-Designer_Open"); + } + return Inter.getLocText("FR-Designer_Close"); + } +} From 2a3fa77d2bca97524077af7d374aa13b8f543cdf Mon Sep 17 00:00:00 2001 From: frharry Date: Wed, 8 Mar 2017 19:33:42 +0800 Subject: [PATCH 2/5] =?UTF-8?q?REPORT-1344=20=E8=A1=A8=E5=8D=95=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=9D=97=E7=BF=BB=E9=A1=B5=E6=94=B9=E8=BF=9B=E5=B9=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B1=80=E9=83=A8=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/fr/design/locale/designer.properties | 2 ++ .../design/locale/designer_en_US.properties | 2 ++ .../design/locale/designer_ja_JP.properties | 2 ++ .../design/locale/designer_ko_KR.properties | 2 ++ .../design/locale/designer_zh_CN.properties | 2 ++ .../design/locale/designer_zh_TW.properties | 2 ++ .../fr/design/mainframe/FSettingToolBar.java | 4 ++-- .../fr/design/mainframe/FToolBarButton.java | 21 +++++++++++++++---- 8 files changed, 31 insertions(+), 6 deletions(-) diff --git a/designer_base/src/com/fr/design/locale/designer.properties b/designer_base/src/com/fr/design/locale/designer.properties index 0a66c326e..3d488421b 100644 --- a/designer_base/src/com/fr/design/locale/designer.properties +++ b/designer_base/src/com/fr/design/locale/designer.properties @@ -91,6 +91,7 @@ FR-Designer_DS-Dictionary= FR-Designer_Data-confusion= FR-Designer_Data_Type= FR-Designer_Double_Click_Edit_OR_Clear= +FR-Designer_Edit_Button_ToolBar= FR-Designer_Email= FR-Designer_Enabled= FR-Designer_End-Date= @@ -161,6 +162,7 @@ FR-Designer_Refresh_Parameter_In_SQL= FR-Designer_Reg_Expressions= FR-Designer_Reg_Max_Length= FR-Designer_Reg_Min_Length= +FR-Designer_Remove_Button_ToolBar= FR-Designer_ReportColumns-Columns= FR-Designer_Return-Date= FR-Designer_RichText= diff --git a/designer_base/src/com/fr/design/locale/designer_en_US.properties b/designer_base/src/com/fr/design/locale/designer_en_US.properties index b0acea3ab..6652599b9 100644 --- a/designer_base/src/com/fr/design/locale/designer_en_US.properties +++ b/designer_base/src/com/fr/design/locale/designer_en_US.properties @@ -91,6 +91,7 @@ FR-Designer_DS-Dictionary=Data Dictionary FR-Designer_Data-confusion=Data Confusion FR-Designer_Data_Type=Data type FR-Designer_Double_Click_Edit_OR_Clear=Double Click to Edit or Clear +FR-Designer_Edit_Button_ToolBar=Edit Button ToolBar FR-Designer_Email=Mail FR-Designer_Enabled=Enabled FR-Designer_End-Date=End Date @@ -163,6 +164,7 @@ FR-Designer_Refresh_Parameter_In_SQL=Whether to refresh parameters in the SQL FR-Designer_Reg_Expressions=Regular expressions FR-Designer_Reg_Max_Length=max length FR-Designer_Reg_Min_Length=min length +FR-Designer_Remove_Button_ToolBar=Remove Button ToolBar FR-Designer_ReportColumns-Columns=Multi-columns/lines FR-Designer_Return-Date=Return Date FR-Designer_RichText=Insert Rich Text diff --git a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties index d86d0a164..a6051651a 100644 --- a/designer_base/src/com/fr/design/locale/designer_ja_JP.properties +++ b/designer_base/src/com/fr/design/locale/designer_ja_JP.properties @@ -91,6 +91,7 @@ FR-Designer_DS-Dictionary=\u30C7\u30FC\u30BF\u5B57\u5178 FR-Designer_Data-confusion=\u30C7\u30FC\u30BF\u6DF7\u4EA4 FR-Designer_Data_Type=\u30C7\u30FC\u30BF\u30BF\u30A4\u30D7 FR-Designer_Double_Click_Edit_OR_Clear=\u30C0\u30D6\u30EB\u30AF\u30EA\u30C3\u30AF\u3057\u3066\u7DE8\u96C6\u307E\u305F\u306F\u30AF\u30EA\u30A2\u3059\u308B +FR-Designer_Edit_Button_ToolBar=\u30DC\u30BF\u30F3\u306B\u3042\u308B\u30C4\u30FC\u30EB\u6B04\u7DE8\u96C6 FR-Designer_Email=\u30E1\u30FC\u30EB FR-Designer_Enabled=\u4F7F\u7528\u53EF\u80FD FR-Designer_End-Date=\u7D42\u4E86\u65E5\u671F @@ -162,6 +163,7 @@ FR-Designer_Refresh_Parameter_In_SQL=SQL\u4E2D\u306E\u30D1\u30E9\u30E1\u30FC\u30 FR-Designer_Reg_Expressions=\u6B63\u5247\u8868\u73FE\u5F0F FR-Designer_Reg_Max_Length=\u6700\u5927\u9577\u3055 FR-Designer_Reg_Min_Length=\u6700\u5C0F\u9577\u3055 +FR-Designer_Remove_Button_ToolBar=\u30DC\u30BF\u30F3\u304C\u3042\u308B\u30C4\u30FC\u30EB\u30D0\u30FC\u3092\u30EA\u30E0\u30FC\u30D6 FR-Designer_ReportColumns-Columns=\u6BB5\u7D44\u307F FR-Designer_Return-Date=\u65E5\u671F\u306B\u623B\u308B FR-Designer_RichText=\u30EA\u30C3\u30C1\u6587\u66F8\u633F\u5165 diff --git a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties index dfb5ec78f..388919ddc 100644 --- a/designer_base/src/com/fr/design/locale/designer_ko_KR.properties +++ b/designer_base/src/com/fr/design/locale/designer_ko_KR.properties @@ -91,6 +91,7 @@ FR-Designer_DS-Dictionary=\uB370\uC774\uD130\uC0AC\uC804 FR-Designer_Data-confusion=\uB370\uC774\uD130\uD63C\uD569 FR-Designer_Data_Type=\uB370\uC774\uD130\uC720\uD615 FR-Designer_Double_Click_Edit_OR_Clear=\uB354\uBE14\uD074\uB9AD\uD558\uC5EC\uD3B8\uC9D1\uB610\uB294\uD074\uB9AC\uC5B4\uC2E4\uD589 +FR-Designer_Edit_Button_ToolBar=\uD0A4\uAC00\uC788\uB294\uD234\uBC14\uD3B8\uC9D1 FR-Designer_Email=\uBA54\uC77C FR-Designer_Enabled=\uC0AC\uC6A9\uAC00\uB2A5 FR-Designer_End-Date=\uC885\uB8CC\uB0A0\uC9DC @@ -162,6 +163,7 @@ FR-Designer_Refresh_Parameter_In_SQL=SQL\uC758\uB9E4\uAC1C\uBCC0\uC218\uB97C\uC0 FR-Designer_Reg_Expressions=\uC815\uADDC\uD45C\uD604\uC2DD FR-Designer_Reg_Max_Length=\uCD5C\uB300\uAE38\uC774 FR-Designer_Reg_Min_Length=\uCD5C\uC18C\uAE38\uC774 +FR-Designer_Remove_Button_ToolBar=\uD0A4\uAC00\uC788\uB294\uD234\uBC14\uC81C\uAC70 FR-Designer_ReportColumns-Columns=\uC140\uB098\uB204\uAE30 FR-Designer_Return-Date=\uB0A0\uC9DC\uB3CC\uC544\uAC00\uAE30 FR-Designer_RichText=\uB9AC\uCE58\uD14D\uC2A4\uD2B8\uBC15\uC2A4\uC0BD\uC785 diff --git a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties index bdb97b094..c114e3a41 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_CN.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_CN.properties @@ -91,6 +91,7 @@ FR-Designer_DS-Dictionary=\u6570\u636E\u5B57\u5178 FR-Designer_Data-confusion=\u6570\u636E\u6DF7\u6DC6 FR-Designer_Data_Type=\u6570\u636E\u7C7B\u578B FR-Designer_Double_Click_Edit_OR_Clear=\u53CC\u51FB\u8FDB\u884C\u7F16\u8F91\u6216\u6E05\u9664 +FR-Designer_Edit_Button_ToolBar=\u7F16\u8F91\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F FR-Designer_Email=\u90AE\u4EF6 FR-Designer_Enabled=\u53EF\u7528 FR-Designer_End-Date=\u7ED3\u675F\u65E5\u671F @@ -163,6 +164,7 @@ FR-Designer_Refresh_Parameter_In_SQL=\u662F\u5426\u5237\u65B0SQL\u4E2D\u7684\u53 FR-Designer_Reg_Expressions=\u6B63\u5219\u8868\u8FBE\u5F0F FR-Designer_Reg_Max_Length=\u6700\u5927\u957F\u5EA6 FR-Designer_Reg_Min_Length=\u6700\u5C0F\u957F\u5EA6 +FR-Designer_Remove_Button_ToolBar=\u79FB\u9664\u6309\u94AE\u6240\u5728\u5DE5\u5177\u680F FR-Designer_ReportColumns-Columns=\u5206\u680F FR-Designer_Return-Date=\u8FD4\u56DE\u65E5\u671F FR-Designer_RichText=\u63D2\u5165\u5BCC\u6587\u672C diff --git a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties index 3acd7487c..fc7c2046d 100644 --- a/designer_base/src/com/fr/design/locale/designer_zh_TW.properties +++ b/designer_base/src/com/fr/design/locale/designer_zh_TW.properties @@ -91,6 +91,7 @@ FR-Designer_DS-Dictionary=\u8CC7\u6599\u5B57\u5178 FR-Designer_Data-confusion=\u8CC7\u6599\u6DF7\u6DC6 FR-Designer_Data_Type=\u8CC7\u6599\u985E\u578B FR-Designer_Double_Click_Edit_OR_Clear=\u96D9\u64CA\u9032\u884C\u7DE8\u8F2F\u6216\u6E05\u9664 +FR-Designer_Edit_Button_ToolBar=\u7DE8\u8F2F\u6309\u9215\u6240\u5728\u5DE5\u5177\u6B04 FR-Designer_Email=\u90F5\u4EF6 FR-Designer_Enabled=\u53EF\u7528 FR-Designer_End-Date=\u7D50\u675F\u65E5\u671F @@ -162,6 +163,7 @@ FR-Designer_Refresh_Parameter_In_SQL=\u5728SQL\u4E2D\u91CD\u65B0\u6574\u7406\u76 FR-Designer_Reg_Expressions=\u6B63\u5247\u8868\u9054\u5F0F FR-Designer_Reg_Max_Length=\u6700\u5927\u9577\u5EA6 FR-Designer_Reg_Min_Length=\u6700\u5C0F\u9577\u5EA6 +FR-Designer_Remove_Button_ToolBar=\u79FB\u9664\u6309\u9215\u6240\u5728\u5DE5\u5177\u6B04 FR-Designer_ReportColumns-Columns=\u5831\u8868\u6B04\u4F4D FR-Designer_Return-Date=\u8FD4\u56DE\u65E5\u671F FR-Designer_RichText= RTF diff --git a/designer_form/src/com/fr/design/mainframe/FSettingToolBar.java b/designer_form/src/com/fr/design/mainframe/FSettingToolBar.java index 00f9dae61..f059c9dff 100644 --- a/designer_form/src/com/fr/design/mainframe/FSettingToolBar.java +++ b/designer_form/src/com/fr/design/mainframe/FSettingToolBar.java @@ -29,10 +29,10 @@ public class FSettingToolBar extends JPanel { this.add(new UILabel(name)); this.toolBarPane = toolBarPane; setButton = GUICoreUtils.createTransparentButton(setIcon, setIcon, setIcon); - setButton.setToolTipText(Inter.getLocText("Edit_Button_ToolBar")); + setButton.setToolTipText(Inter.getLocText("FR-Designer_Edit_Button_ToolBar")); setButton.setAction(new SetAction()); delButton = GUICoreUtils.createTransparentButton(delIcon, delIcon, delIcon); - delButton.setToolTipText(Inter.getLocText("Remove_Button_ToolBar")); + delButton.setToolTipText(Inter.getLocText("FR-Designer_Remove_Button_ToolBar")); delButton.setAction(new DelAction()); this.add(setButton); this.add(delButton); diff --git a/designer_form/src/com/fr/design/mainframe/FToolBarButton.java b/designer_form/src/com/fr/design/mainframe/FToolBarButton.java index c65b31757..339a624be 100644 --- a/designer_form/src/com/fr/design/mainframe/FToolBarButton.java +++ b/designer_form/src/com/fr/design/mainframe/FToolBarButton.java @@ -1,12 +1,15 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; +import com.fr.base.GraphHelper; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.gui.core.WidgetOption; -import com.fr.design.gui.ibutton.UIButton; +import com.fr.design.roleAuthority.ReportAndFSManagePane; +import com.fr.design.utils.gui.GUIPaintUtils; import com.fr.form.ui.Widget; import com.fr.form.ui.WidgetManager; +import com.fr.stable.Constants; import com.fr.stable.StringUtils; import javax.swing.*; @@ -17,7 +20,7 @@ import java.awt.event.MouseListener; /** * Created by harry on 2017-3-2. */ -public class FToolBarButton extends UIButton implements MouseListener { +public class FToolBarButton extends JButton implements MouseListener { private Widget widget; private WidgetOption no; @@ -27,6 +30,7 @@ public class FToolBarButton extends UIButton implements MouseListener { public FToolBarButton(String text, Icon icon, Widget widget) { super(text, icon); + init(); this.widget = widget; if (widget instanceof com.fr.form.ui.Button) { com.fr.form.ui.Button button = (com.fr.form.ui.Button) widget; @@ -42,6 +46,11 @@ public class FToolBarButton extends UIButton implements MouseListener { setMargin(new Insets(0, 0, 0, 0)); } + private void init() { + setBackground(null); + setRolloverEnabled(true); + } + /** * 改变按钮的权限细粒度状态 @@ -82,8 +91,12 @@ public class FToolBarButton extends UIButton implements MouseListener { protected void paintBorder(Graphics g) { - this.setBorderType(UIButton.NORMAL_BORDER); - super.paintBorder(g); + paintBorder(g, this); + } + + protected void paintBorder(Graphics g, FToolBarButton b) { + String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); + GUIPaintUtils.drawBorder((Graphics2D) g, 0, 0, b.getWidth(), b.getHeight(), true, Constants.NULL, b.isDoneAuthorityEdited(selectedRoles)); } /** From 346e7337d9cf981624c2b5886c47e7ef753b7021 Mon Sep 17 00:00:00 2001 From: frharry Date: Wed, 8 Mar 2017 20:40:08 +0800 Subject: [PATCH 3/5] =?UTF-8?q?REPORT-1344=20=E8=A1=A8=E5=8D=95=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=9D=97=E7=BF=BB=E9=A1=B5=E6=94=B9=E8=BF=9B=E5=B9=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B1=80=E9=83=A8=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/designer/creator/XElementCase.java | 7 +- ...FEditToolBar.java => FormEditToolBar.java} | 40 +++++----- ...ngToolBar.java => FormSettingToolBar.java} | 8 +- .../{FToolBar.java => FormToolBar.java} | 14 ++-- ...lBarButton.java => FormToolBarButton.java} | 17 ++--- ...FToolBarPane.java => FormToolBarPane.java} | 42 +++++------ .../mainframe/FormWebWidgetConstants.java | 2 +- ...> AccessibleElementCaseToolBarEditor.java} | 26 +++---- .../widget/editors/ECToolBarEditor.java | 13 ---- .../editors/ElementCaseToolBarEditor.java | 13 ++++ ...rPane.java => ElementCaseToolBarPane.java} | 74 +++++++++---------- ...er.java => ElementCaseToolBarWrapper.java} | 6 +- 12 files changed, 129 insertions(+), 133 deletions(-) rename designer_form/src/com/fr/design/mainframe/{FEditToolBar.java => FormEditToolBar.java} (92%) rename designer_form/src/com/fr/design/mainframe/{FSettingToolBar.java => FormSettingToolBar.java} (92%) rename designer_form/src/com/fr/design/mainframe/{FToolBar.java => FormToolBar.java} (76%) rename designer_form/src/com/fr/design/mainframe/{FToolBarButton.java => FormToolBarButton.java} (87%) rename designer_form/src/com/fr/design/mainframe/{FToolBarPane.java => FormToolBarPane.java} (82%) rename designer_form/src/com/fr/design/mainframe/widget/accessibles/{AccessibleECToolBarEditor.java => AccessibleElementCaseToolBarEditor.java} (62%) delete mode 100644 designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarEditor.java create mode 100644 designer_form/src/com/fr/design/mainframe/widget/editors/ElementCaseToolBarEditor.java rename designer_form/src/com/fr/design/mainframe/widget/editors/{ECToolBarPane.java => ElementCaseToolBarPane.java} (80%) rename designer_form/src/com/fr/design/mainframe/widget/wrappers/{ECToolBarWrapper.java => ElementCaseToolBarWrapper.java} (79%) diff --git a/designer_form/src/com/fr/design/designer/creator/XElementCase.java b/designer_form/src/com/fr/design/designer/creator/XElementCase.java index 584b630f8..c7cd3b493 100644 --- a/designer_form/src/com/fr/design/designer/creator/XElementCase.java +++ b/designer_form/src/com/fr/design/designer/creator/XElementCase.java @@ -10,12 +10,9 @@ import com.fr.design.fun.WidgetPropertyUIProvider; import com.fr.design.fun.impl.AbstractFormElementCaseEditorProvider; import com.fr.design.gui.ilable.UILabel; import com.fr.design.mainframe.*; -import com.fr.design.mainframe.widget.editors.BooleanEditor; -import com.fr.design.mainframe.widget.editors.ECToolBarEditor; +import com.fr.design.mainframe.widget.editors.ElementCaseToolBarEditor; import com.fr.design.mainframe.widget.editors.PaddingMarginEditor; import com.fr.design.mainframe.widget.editors.WLayoutBorderStyleEditor; -import com.fr.design.mainframe.widget.renderer.LayoutBorderStyleRenderer; -import com.fr.design.mainframe.widget.renderer.PaddingMarginCellRenderer; import com.fr.form.FormElementCaseContainerProvider; import com.fr.form.FormElementCaseProvider; import com.fr.form.FormProvider; @@ -105,7 +102,7 @@ public class XElementCase extends XBorderStyleWidgetCreator implements FormEleme new CRPropertyDescriptor("margin", this.data.getClass()).setEditorClass(PaddingMarginEditor.class) .setI18NName(Inter.getLocText("FR-Layout_Padding")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced"), - new CRPropertyDescriptor("ToolBars", this.data.getClass()).setEditorClass(ECToolBarEditor.class) + new CRPropertyDescriptor("ToolBars", this.data.getClass()).setEditorClass(ElementCaseToolBarEditor.class) .setI18NName(Inter.getLocText("Form-EC_toolbar")) .putKeyValue(XCreatorConstants.PROPERTY_CATEGORY, "Advanced") }; diff --git a/designer_form/src/com/fr/design/mainframe/FEditToolBar.java b/designer_form/src/com/fr/design/mainframe/FormEditToolBar.java similarity index 92% rename from designer_form/src/com/fr/design/mainframe/FEditToolBar.java rename to designer_form/src/com/fr/design/mainframe/FormEditToolBar.java index 4ca4ab9c1..d0e217f27 100644 --- a/designer_form/src/com/fr/design/mainframe/FEditToolBar.java +++ b/designer_form/src/com/fr/design/mainframe/FormEditToolBar.java @@ -36,14 +36,14 @@ import java.util.*; /** * Created by harry on 2017-3-2. */ -public class FEditToolBar extends BasicPane { +public class FormEditToolBar extends BasicPane { private JList list; private DefaultListModel listModel; private JPanel right; private CardLayout card; private ButtonPane bp; - private FToolBarButton lastButton; + private FormToolBarButton lastButton; private Background background = null; private UICheckBox defaultCheckBox; @@ -52,8 +52,8 @@ public class FEditToolBar extends BasicPane { if (lastButton != null) { lastButton.setWidget(bp.update()); } - if (list.getSelectedValue() instanceof FToolBarButton) { - lastButton = (FToolBarButton) list.getSelectedValue(); + if (list.getSelectedValue() instanceof FormToolBarButton) { + lastButton = (FormToolBarButton) list.getSelectedValue(); if (lastButton.getWidget() instanceof Button) { card.show(right, "button"); bp.populate(lastButton.getWidget()); @@ -73,12 +73,12 @@ public class FEditToolBar extends BasicPane { public void actionPerformed(ActionEvent arg0) { final BackgroundPane backgroundPane = new BackgroundPane(); BasicDialog dialog = backgroundPane.showWindow(DesignerContext.getDesignerFrame()); - backgroundPane.populate(FEditToolBar.this.background); + backgroundPane.populate(FormEditToolBar.this.background); dialog.addDialogActionListener(new DialogActionAdapter() { public void doOk() { - FEditToolBar.this.background = backgroundPane.update(); - if (FEditToolBar.this.background != null) { - FEditToolBar.this.defaultCheckBox.setSelected(false); + FormEditToolBar.this.background = backgroundPane.update(); + if (FormEditToolBar.this.background != null) { + FormEditToolBar.this.defaultCheckBox.setSelected(false); } } }); @@ -86,7 +86,7 @@ public class FEditToolBar extends BasicPane { } }; - public FEditToolBar() { + public FormEditToolBar() { initComponent(); } @@ -138,8 +138,8 @@ public class FEditToolBar extends BasicPane { public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus); - if (value instanceof FToolBarButton) { - FToolBarButton button = (FToolBarButton) value; + if (value instanceof FormToolBarButton) { + FormToolBarButton button = (FormToolBarButton) value; this.setText(button.getNameOption().optionName()); this.setIcon(button.getNameOption().optionIcon()); } @@ -152,11 +152,11 @@ public class FEditToolBar extends BasicPane { return Inter.getLocText("FR-Designer_Edit"); } - public void populate(FToolBar ftoolbar) { + public void populate(FormToolBar ftoolbar) { this.populate(ftoolbar, null); } - public void populate(FToolBar ftoolbar, FToolBarButton button) { + public void populate(FormToolBar ftoolbar, FormToolBarButton button) { if (ftoolbar == null) { return; } @@ -176,11 +176,11 @@ public class FEditToolBar extends BasicPane { this.defaultCheckBox.setSelected(ftoolbar.isDefault() ? true : false); } - public FToolBar update() { + public FormToolBar update() { if (this.list.getSelectedIndex() > -1) { for (int i = 0; i < listModel.getSize(); i++) { this.list.setSelectedIndex(i); - FToolBarButton toolBarButton = (FToolBarButton) this.list.getSelectedValue(); + FormToolBarButton toolBarButton = (FormToolBarButton) this.list.getSelectedValue(); Widget widget = this.bp.update(); toolBarButton.setWidget(widget); if (widget instanceof Button) { @@ -192,11 +192,11 @@ public class FEditToolBar extends BasicPane { } } } - java.util.List list = new ArrayList(); + java.util.List list = new ArrayList(); for (int i = 0; i < listModel.size(); i++) { - list.add((FToolBarButton) listModel.get(i)); + list.add((FormToolBarButton) listModel.get(i)); } - FToolBar ftoolBar = new FToolBar(); + FormToolBar ftoolBar = new FormToolBar(); ftoolBar.setButtonlist(list); ftoolBar.setDefault(this.defaultCheckBox.isSelected()); @@ -284,10 +284,10 @@ public class FEditToolBar extends BasicPane { */ public void actionPerformed(ActionEvent e) { int i = list.getSelectedIndex(); - if (i < 0 || !(listModel.getElementAt(i) instanceof FToolBarButton)) { + if (i < 0 || !(listModel.getElementAt(i) instanceof FormToolBarButton)) { return; } - int val = JOptionPane.showConfirmDialog(FEditToolBar.this, Inter.getLocText("FR-Designer_Are_You_Sure_To_Delete_The_Data") + "?", "Message", JOptionPane.YES_NO_OPTION); + int val = JOptionPane.showConfirmDialog(FormEditToolBar.this, Inter.getLocText("FR-Designer_Are_You_Sure_To_Delete_The_Data") + "?", "Message", JOptionPane.YES_NO_OPTION); if (val != JOptionPane.YES_OPTION) { return; } diff --git a/designer_form/src/com/fr/design/mainframe/FSettingToolBar.java b/designer_form/src/com/fr/design/mainframe/FormSettingToolBar.java similarity index 92% rename from designer_form/src/com/fr/design/mainframe/FSettingToolBar.java rename to designer_form/src/com/fr/design/mainframe/FormSettingToolBar.java index f059c9dff..2ed8a6984 100644 --- a/designer_form/src/com/fr/design/mainframe/FSettingToolBar.java +++ b/designer_form/src/com/fr/design/mainframe/FormSettingToolBar.java @@ -16,14 +16,14 @@ import java.awt.event.ActionListener; /** * Created by harry on 2017-3-2. */ -public class FSettingToolBar extends JPanel { +public class FormSettingToolBar extends JPanel { private Icon setIcon = BaseUtils.readIcon("com/fr/design/images/toolbarbtn/toolbarbtnsetting.png"); private Icon delIcon = BaseUtils.readIcon("com/fr/design/images/toolbarbtn/toolbarbtnclear.png"); private UIButton setButton; private UIButton delButton; - private FToolBarPane toolBarPane; + private FormToolBarPane toolBarPane; - public FSettingToolBar(String name,FToolBarPane toolBarPane) { + public FormSettingToolBar(String name, FormToolBarPane toolBarPane) { super(); this.setBackground(Color.lightGray); this.add(new UILabel(name)); @@ -56,7 +56,7 @@ public class FSettingToolBar extends JPanel { @Override public void actionPerformed(ActionEvent arg0) { - final FEditToolBar tb = new FEditToolBar(); + final FormEditToolBar tb = new FormEditToolBar(); tb.populate(toolBarPane.getFToolBar()); BasicDialog dialog = tb.showWindow(DesignerContext.getDesignerFrame()); dialog.addDialogActionListener(new DialogActionAdapter() { diff --git a/designer_form/src/com/fr/design/mainframe/FToolBar.java b/designer_form/src/com/fr/design/mainframe/FormToolBar.java similarity index 76% rename from designer_form/src/com/fr/design/mainframe/FToolBar.java rename to designer_form/src/com/fr/design/mainframe/FormToolBar.java index 5eb519680..5a172e5d4 100644 --- a/designer_form/src/com/fr/design/mainframe/FToolBar.java +++ b/designer_form/src/com/fr/design/mainframe/FormToolBar.java @@ -10,28 +10,28 @@ import java.util.List; /** * Created by harry on 2017-3-2. */ -public class FToolBar { - private List buttonlist = new ArrayList(); +public class FormToolBar { + private List buttonlist = new ArrayList(); private Background background = null; private boolean isDefault = true; - public List getButtonlist() { + public List getButtonlist() { return buttonlist; } - public void setButtonlist(List buttonlist) { + public void setButtonlist(List buttonlist) { if (buttonlist == null || buttonlist.size() < 0) { - this.buttonlist = new ArrayList(); + this.buttonlist = new ArrayList(); } else { this.buttonlist = buttonlist; } } - public void addButton(FToolBarButton toolBarButton) { + public void addButton(FormToolBarButton toolBarButton) { this.buttonlist.add(toolBarButton); } - public void removeButton(FToolBarButton toolBarButton) { + public void removeButton(FormToolBarButton toolBarButton) { this.buttonlist.remove(toolBarButton); } diff --git a/designer_form/src/com/fr/design/mainframe/FToolBarButton.java b/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java similarity index 87% rename from designer_form/src/com/fr/design/mainframe/FToolBarButton.java rename to designer_form/src/com/fr/design/mainframe/FormToolBarButton.java index 339a624be..a26b8d18f 100644 --- a/designer_form/src/com/fr/design/mainframe/FToolBarButton.java +++ b/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java @@ -1,7 +1,6 @@ package com.fr.design.mainframe; import com.fr.base.BaseUtils; -import com.fr.base.GraphHelper; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.gui.core.WidgetOption; @@ -20,15 +19,15 @@ import java.awt.event.MouseListener; /** * Created by harry on 2017-3-2. */ -public class FToolBarButton extends JButton implements MouseListener { +public class FormToolBarButton extends JButton implements MouseListener { private Widget widget; private WidgetOption no; - public FToolBarButton(Icon icon, Widget widget) { + public FormToolBarButton(Icon icon, Widget widget) { this(null, icon, widget); } - public FToolBarButton(String text, Icon icon, Widget widget) { + public FormToolBarButton(String text, Icon icon, Widget widget) { super(text, icon); init(); this.widget = widget; @@ -94,7 +93,7 @@ public class FToolBarButton extends JButton implements MouseListener { paintBorder(g, this); } - protected void paintBorder(Graphics g, FToolBarButton b) { + protected void paintBorder(Graphics g, FormToolBarButton b) { String selectedRoles = ReportAndFSManagePane.getInstance().getRoleTree().getSelectedRoleName(); GUIPaintUtils.drawBorder((Graphics2D) g, 0, 0, b.getWidth(), b.getHeight(), true, Constants.NULL, b.isDoneAuthorityEdited(selectedRoles)); } @@ -110,9 +109,9 @@ public class FToolBarButton extends JButton implements MouseListener { return; } if (e.getClickCount() >= 2) { - if (this.getParent() instanceof FToolBarPane) { - final FToolBarPane tb = (FToolBarPane) this.getParent(); - final FEditToolBar etb = new FEditToolBar(); + if (this.getParent() instanceof FormToolBarPane) { + final FormToolBarPane tb = (FormToolBarPane) this.getParent(); + final FormEditToolBar etb = new FormEditToolBar(); etb.populate(tb.getFToolBar(), this); BasicDialog dialog = etb.showWindow(DesignerContext.getDesignerFrame()); dialog.addDialogActionListener(new DialogActionAdapter() { @@ -127,7 +126,7 @@ public class FToolBarButton extends JButton implements MouseListener { private void auhtorityMouseAction() { - if (this.getParent() instanceof FToolBarPane && this.isEnabled()) { + if (this.getParent() instanceof FormToolBarPane && this.isEnabled()) { this.setSelected(!this.isSelected()); } diff --git a/designer_form/src/com/fr/design/mainframe/FToolBarPane.java b/designer_form/src/com/fr/design/mainframe/FormToolBarPane.java similarity index 82% rename from designer_form/src/com/fr/design/mainframe/FToolBarPane.java rename to designer_form/src/com/fr/design/mainframe/FormToolBarPane.java index f58651bde..e64259b27 100644 --- a/designer_form/src/com/fr/design/mainframe/FToolBarPane.java +++ b/designer_form/src/com/fr/design/mainframe/FormToolBarPane.java @@ -20,11 +20,11 @@ import java.util.List; /** * Created by harry on 2017-3-2. */ -public class FToolBarPane extends BasicBeanPane { +public class FormToolBarPane extends BasicBeanPane { - private FToolBar ftoolbar = new FToolBar(); + private FormToolBar ftoolbar = new FormToolBar(); - public FToolBarPane() { + public FormToolBarPane() { super(); this.initComponent(); } @@ -36,13 +36,13 @@ public class FToolBarPane extends BasicBeanPane { * @param mouselistener 鼠标监听 */ public void addAuthorityListener(MouseListener mouselistener) { - List list = ftoolbar.getButtonlist(); + List list = ftoolbar.getButtonlist(); for (int i = 0; i < list.size(); i++) { list.get(i).addMouseListener(mouselistener); } } - public FToolBarPane(FToolBarButton button) { + public FormToolBarPane(FormToolBarButton button) { super(); this.initComponent(); this.add(button); @@ -70,7 +70,7 @@ public class FToolBarPane extends BasicBeanPane { return "Toolbar"; } - public void setSelectedButton(FToolBarButton button) { + public void setSelectedButton(FormToolBarButton button) { this.ftoolbar.addButton(button); } @@ -82,8 +82,8 @@ public class FToolBarPane extends BasicBeanPane { * @return 被添加的组件 */ public Component add(Component comp) { - if (comp instanceof FToolBarButton) { - this.ftoolbar.addButton((FToolBarButton) comp); + if (comp instanceof FormToolBarButton) { + this.ftoolbar.addButton((FormToolBarButton) comp); } return super.add(comp); } @@ -97,19 +97,19 @@ public class FToolBarPane extends BasicBeanPane { this.ftoolbar.clearButton(); } - protected void setFToolBar(FToolBar ftoolbar) { + protected void setFToolBar(FormToolBar ftoolbar) { if (ftoolbar == null) { - ftoolbar = new FToolBar(); + ftoolbar = new FormToolBar(); } this.ftoolbar = ftoolbar; this.setToolBar(this.ftoolbar.getButtonlist()); } - public List getToolBarButtons() { + public List getToolBarButtons() { return ftoolbar.getButtonlist(); } - protected FToolBar getFToolBar() { + protected FormToolBar getFToolBar() { return this.ftoolbar; } @@ -117,7 +117,7 @@ public class FToolBarPane extends BasicBeanPane { return this.ftoolbar.getButtonlist().size() <= 0; } - private void setToolBar(List list) { + private void setToolBar(List list) { if (list == null || list.size() < 0) { return; } @@ -142,7 +142,7 @@ public class FToolBarPane extends BasicBeanPane { continue; } - FToolBarButton button = new FToolBarButton(no.optionIcon(), widget); + FormToolBarButton button = new FormToolBarButton(no.optionIcon(), widget); button.setNameOption(no); this.add(button); this.validate(); @@ -161,13 +161,13 @@ public class FToolBarPane extends BasicBeanPane { @Override public void mouseClicked(MouseEvent e) { if (e.getClickCount() >= 2 && !SwingUtilities.isRightMouseButton(e)) { - final FEditToolBar tb = new FEditToolBar(); + final FormEditToolBar tb = new FormEditToolBar(); tb.populate(getFToolBar()); - BasicDialog dialog = tb.showWindow(SwingUtilities.getWindowAncestor(FToolBarPane.this)); + BasicDialog dialog = tb.showWindow(SwingUtilities.getWindowAncestor(FormToolBarPane.this)); dialog.addDialogActionListener(new DialogActionAdapter() { @Override public void doOk() { - FToolBarPane.this.setFToolBar(tb.update()); + FormToolBarPane.this.setFToolBar(tb.update()); } }); dialog.setVisible(true); @@ -221,11 +221,11 @@ public class FToolBarPane extends BasicBeanPane { } Widget widget = data.createWidget(); - FToolBarButton btn = new FToolBarButton(data.optionIcon(), widget); + FormToolBarButton btn = new FormToolBarButton(data.optionIcon(), widget); btn.setNameOption(data); - FToolBarPane.this.add(btn); - FToolBarPane.this.validate(); - FToolBarPane.this.repaint(); + FormToolBarPane.this.add(btn); + FormToolBarPane.this.validate(); + FormToolBarPane.this.repaint(); return true; } diff --git a/designer_form/src/com/fr/design/mainframe/FormWebWidgetConstants.java b/designer_form/src/com/fr/design/mainframe/FormWebWidgetConstants.java index e94abdc99..a84b7523d 100644 --- a/designer_form/src/com/fr/design/mainframe/FormWebWidgetConstants.java +++ b/designer_form/src/com/fr/design/mainframe/FormWebWidgetConstants.java @@ -18,7 +18,7 @@ public class FormWebWidgetConstants { private FormWebWidgetConstants() { } - public static WidgetOption[] getFormECToolBarInstance() { + public static WidgetOption[] getFormElementCaseToolBarInstance() { return new WidgetOption[]{FIRST, PREVIOUS, PAGENAVI, NEXT, LAST, EXPORT, EXCELP, EXCELO, CUSTOM_BUTTON}; } diff --git a/designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleECToolBarEditor.java b/designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleElementCaseToolBarEditor.java similarity index 62% rename from designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleECToolBarEditor.java rename to designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleElementCaseToolBarEditor.java index e7bf4662f..1695892ba 100644 --- a/designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleECToolBarEditor.java +++ b/designer_form/src/com/fr/design/mainframe/widget/accessibles/AccessibleElementCaseToolBarEditor.java @@ -4,9 +4,9 @@ import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.gui.core.WidgetOption; import com.fr.design.mainframe.FormWebWidgetConstants; -import com.fr.design.mainframe.widget.editors.ECToolBarPane; -import com.fr.design.mainframe.widget.wrappers.ECToolBarWrapper; -import com.fr.form.web.FToolBarManager; +import com.fr.design.mainframe.widget.editors.ElementCaseToolBarPane; +import com.fr.design.mainframe.widget.wrappers.ElementCaseToolBarWrapper; +import com.fr.form.web.FormToolBarManager; import com.fr.stable.ArrayUtils; import javax.swing.*; @@ -17,17 +17,17 @@ import java.util.List; /** * Created by harry on 2017-2-23. */ -public class AccessibleECToolBarEditor extends UneditableAccessibleEditor { - private ECToolBarPane pane; +public class AccessibleElementCaseToolBarEditor extends UneditableAccessibleEditor { + private ElementCaseToolBarPane pane; - public AccessibleECToolBarEditor() { - super(new ECToolBarWrapper()); + public AccessibleElementCaseToolBarEditor() { + super(new ElementCaseToolBarWrapper()); } @Override protected void showEditorPane() { if (pane == null) { - pane = new ECToolBarPane(); + pane = new ElementCaseToolBarPane(); pane.setDefaultToolBar(getDefaultToolBarManager(), getToolBarInstance()); } BasicDialog dlg = pane.showToolBarWindow(SwingUtilities.getWindowAncestor(this), new DialogActionAdapter() { @@ -38,18 +38,18 @@ public class AccessibleECToolBarEditor extends UneditableAccessibleEditor { fireStateChanged(); } }); - FToolBarManager[] managers = (FToolBarManager[]) getValue(); + FormToolBarManager[] managers = (FormToolBarManager[]) getValue(); pane.setCheckBoxSelected(ArrayUtils.isNotEmpty(managers)); - pane.populateBean((FToolBarManager[]) getValue()); + pane.populateBean((FormToolBarManager[]) getValue()); dlg.setVisible(true); } - private FToolBarManager getDefaultToolBarManager() { - return FToolBarManager.createDefaultToolBar(); + private FormToolBarManager getDefaultToolBarManager() { + return FormToolBarManager.createDefaultToolBar(); } private WidgetOption[] getToolBarInstance() { - List defaultOptions = Arrays.asList(FormWebWidgetConstants.getFormECToolBarInstance()); + List defaultOptions = Arrays.asList(FormWebWidgetConstants.getFormElementCaseToolBarInstance()); List options = new ArrayList(); options.addAll(defaultOptions); return options.toArray(new WidgetOption[options.size()]); diff --git a/designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarEditor.java b/designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarEditor.java deleted file mode 100644 index eea19ced7..000000000 --- a/designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarEditor.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.fr.design.mainframe.widget.editors; - -import com.fr.design.mainframe.widget.accessibles.AccessibleECToolBarEditor; -import com.fr.design.mainframe.widget.accessibles.AccessiblePropertyEditor; - -/** - * Created by harry on 2017-2-23. - */ -public class ECToolBarEditor extends AccessiblePropertyEditor { - public ECToolBarEditor() { - super(new AccessibleECToolBarEditor()); - } -} diff --git a/designer_form/src/com/fr/design/mainframe/widget/editors/ElementCaseToolBarEditor.java b/designer_form/src/com/fr/design/mainframe/widget/editors/ElementCaseToolBarEditor.java new file mode 100644 index 000000000..de252c984 --- /dev/null +++ b/designer_form/src/com/fr/design/mainframe/widget/editors/ElementCaseToolBarEditor.java @@ -0,0 +1,13 @@ +package com.fr.design.mainframe.widget.editors; + +import com.fr.design.mainframe.widget.accessibles.AccessibleElementCaseToolBarEditor; +import com.fr.design.mainframe.widget.accessibles.AccessiblePropertyEditor; + +/** + * Created by harry on 2017-2-23. + */ +public class ElementCaseToolBarEditor extends AccessiblePropertyEditor { + public ElementCaseToolBarEditor() { + super(new AccessibleElementCaseToolBarEditor()); + } +} diff --git a/designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarPane.java b/designer_form/src/com/fr/design/mainframe/widget/editors/ElementCaseToolBarPane.java similarity index 80% rename from designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarPane.java rename to designer_form/src/com/fr/design/mainframe/widget/editors/ElementCaseToolBarPane.java index ea2bbe7a4..9e6a90445 100644 --- a/designer_form/src/com/fr/design/mainframe/widget/editors/ECToolBarPane.java +++ b/designer_form/src/com/fr/design/mainframe/widget/editors/ElementCaseToolBarPane.java @@ -8,12 +8,12 @@ import com.fr.design.gui.icheckbox.UICheckBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.mainframe.DesignerContext; -import com.fr.design.mainframe.FSettingToolBar; -import com.fr.design.mainframe.FToolBarButton; -import com.fr.design.mainframe.FToolBarPane; +import com.fr.design.mainframe.FormSettingToolBar; +import com.fr.design.mainframe.FormToolBarButton; +import com.fr.design.mainframe.FormToolBarPane; import com.fr.form.ui.Widget; -import com.fr.form.web.FLocation; -import com.fr.form.web.FToolBarManager; +import com.fr.form.web.FormToolBarManager; +import com.fr.form.web.Location; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; import com.fr.stable.Constants; @@ -34,19 +34,19 @@ import java.util.List; /** * Created by harry on 2017-2-23. */ -public class ECToolBarPane extends BasicBeanPane { +public class ElementCaseToolBarPane extends BasicBeanPane { private static final int COLUMN = 2; private int row = 6; private DefaultTableModel toolbarButtonTableModel; private JTable layoutTable; private UICheckBox isUseToolBarCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Use_ToolBar") + ":"); // 是否使用工具栏 - private FToolBarPane northToolBar; - private FToolBarPane southToolBar; - private FToolBarManager defaultToolBar; + private FormToolBarPane northToolBar; + private FormToolBarPane southToolBar; + private FormToolBarManager defaultToolBar; - public ECToolBarPane() { + public ElementCaseToolBarPane() { toolbarButtonTableModel = new TableModel(row ,COLUMN); this.setLayout(FRGUIPaneFactory.createBorderLayout()); JPanel north = FRGUIPaneFactory.createBorderLayout_S_Pane(); @@ -61,11 +61,11 @@ public class ECToolBarPane extends BasicBeanPane { if (defaultToolBar == null) { return; } - FToolBarManager toolBarManager = defaultToolBar; - toolBarManager.setToolBarLocation(FLocation.createTopEmbedLocation()); - FToolBarManager[] tbm = new FToolBarManager[] { toolBarManager }; + FormToolBarManager toolBarManager = defaultToolBar; + toolBarManager.setToolBarLocation(Location.createTopEmbedLocation()); + FormToolBarManager[] tbm = new FormToolBarManager[] { toolBarManager }; populateBean(tbm); - ECToolBarPane.this.repaint(); + ElementCaseToolBarPane.this.repaint(); } }); @@ -75,7 +75,7 @@ public class ECToolBarPane extends BasicBeanPane { north.add(aa, BorderLayout.CENTER); this.add(north, BorderLayout.NORTH); - northToolBar = new FToolBarPane(); + northToolBar = new FormToolBarPane(); northToolBar.setPreferredSize(new Dimension(ImageObserver.WIDTH, 26)); northToolBar.setBackground(Color.lightGray); @@ -92,7 +92,7 @@ public class ECToolBarPane extends BasicBeanPane { if (isSelectedtable()) { WidgetOption no = (WidgetOption)layoutTable.getValueAt(layoutTable.getSelectedRow(), layoutTable.getSelectedColumn()); Widget widget = no.createWidget(); - FToolBarButton tb = new FToolBarButton(no.optionIcon(), widget); + FormToolBarButton tb = new FormToolBarButton(no.optionIcon(), widget); tb.setNameOption(no); northToolBar.add(tb); northToolBar.validate(); @@ -117,7 +117,7 @@ public class ECToolBarPane extends BasicBeanPane { if (isSelectedtable()) { WidgetOption no = (WidgetOption)layoutTable.getValueAt(layoutTable.getSelectedRow(), layoutTable.getSelectedColumn()); Widget widget = no.createWidget(); - FToolBarButton tb = new FToolBarButton(no.optionIcon(), widget); + FormToolBarButton tb = new FormToolBarButton(no.optionIcon(), widget); tb.setNameOption(no); southToolBar.add(tb); southToolBar.validate(); @@ -139,18 +139,18 @@ public class ECToolBarPane extends BasicBeanPane { small.add(layoutTable, BorderLayout.CENTER); center.add(small, BorderLayout.CENTER); center.add(downButton, BorderLayout.SOUTH); - southToolBar = new FToolBarPane(); + southToolBar = new FormToolBarPane(); southToolBar.setPreferredSize(new Dimension(ImageObserver.WIDTH, 26)); southToolBar.setBackground(Color.lightGray); JPanel movePane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JPanel northContentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - FSettingToolBar top = new FSettingToolBar(Inter.getLocText("FR-Designer_ToolBar_Top"), northToolBar); + FormSettingToolBar top = new FormSettingToolBar(Inter.getLocText("FR-Designer_ToolBar_Top"), northToolBar); northContentPane.add(top, BorderLayout.EAST); northContentPane.add(northToolBar, BorderLayout.CENTER); northContentPane.setBackground(Color.lightGray); JPanel southContentPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); - FSettingToolBar bottom = new FSettingToolBar(Inter.getLocText("FR-Designer_ToolBar_Bottom"), southToolBar); + FormSettingToolBar bottom = new FormSettingToolBar(Inter.getLocText("FR-Designer_ToolBar_Bottom"), southToolBar); southContentPane.add(bottom, BorderLayout.EAST); southContentPane.add(southToolBar, BorderLayout.CENTER); southContentPane.setBackground(Color.lightGray); @@ -180,7 +180,7 @@ public class ECToolBarPane extends BasicBeanPane { if (e.getClickCount() > 1 && !SwingUtilities.isRightMouseButton(e)) { WidgetOption no = (WidgetOption)layoutTable.getValueAt(layoutTable.getSelectedRow(), layoutTable.getSelectedColumn()); Widget widget = no.createWidget(); - FToolBarButton tb = new FToolBarButton(no.optionIcon(), widget); + FormToolBarButton tb = new FormToolBarButton(no.optionIcon(), widget); tb.setNameOption(no); northToolBar.add(tb); northToolBar.validate(); @@ -207,7 +207,7 @@ public class ECToolBarPane extends BasicBeanPane { return this.isUseToolBarCheckBox.isSelected(); } - public void setDefaultToolBar(FToolBarManager defaultToolBar, WidgetOption[] buttonArray) { + public void setDefaultToolBar(FormToolBarManager defaultToolBar, WidgetOption[] buttonArray) { this.defaultToolBar = defaultToolBar; if (buttonArray != null) { for (int i = 0; i < buttonArray.length; i++) { @@ -249,20 +249,20 @@ public class ECToolBarPane extends BasicBeanPane { } @Override - public void populateBean(FToolBarManager[] toolBarManager) { + public void populateBean(FormToolBarManager[] toolBarManager) { if (ArrayUtils.isEmpty(toolBarManager)) { - defaultToolBar.setToolBarLocation(FLocation.createTopEmbedLocation()); - toolBarManager = new FToolBarManager[] { defaultToolBar }; + defaultToolBar.setToolBarLocation(Location.createTopEmbedLocation()); + toolBarManager = new FormToolBarManager[] { defaultToolBar }; } if (ArrayUtils.isEmpty(toolBarManager)) { return; } for (int i = 0; i < toolBarManager.length; i++) { - FLocation location = toolBarManager[i].getToolBarLocation(); - if (location instanceof FLocation.Embed) { - if (((FLocation.Embed)location).getPosition() == Constants.TOP) { + Location location = toolBarManager[i].getToolBarLocation(); + if (location instanceof Location.Embed) { + if (((Location.Embed)location).getPosition() == Constants.TOP) { northToolBar.populateBean(toolBarManager[i].getToolBar()); - } else if (((FLocation.Embed)location).getPosition() == Constants.BOTTOM) { + } else if (((Location.Embed)location).getPosition() == Constants.BOTTOM) { southToolBar.populateBean(toolBarManager[i].getToolBar()); } } @@ -270,25 +270,25 @@ public class ECToolBarPane extends BasicBeanPane { } @Override - public FToolBarManager[] updateBean() { + public FormToolBarManager[] updateBean() { if(!isUseToolbar()){ - return new FToolBarManager[0]; + return new FormToolBarManager[0]; } - List toolBarManagerList = new ArrayList(); + List toolBarManagerList = new ArrayList(); if (!northToolBar.isEmpty()) { - FToolBarManager north = new FToolBarManager(); + FormToolBarManager north = new FormToolBarManager(); north.setToolBar(northToolBar.updateBean()); - north.setToolBarLocation(FLocation.createTopEmbedLocation()); + north.setToolBarLocation(Location.createTopEmbedLocation()); toolBarManagerList.add(north); } if (!southToolBar.isEmpty()) { - FToolBarManager south = new FToolBarManager(); + FormToolBarManager south = new FormToolBarManager(); south.setToolBar(southToolBar.updateBean()); - south.setToolBarLocation(FLocation.createBottomEmbedLocation()); + south.setToolBarLocation(Location.createBottomEmbedLocation()); toolBarManagerList.add(south); } - return toolBarManagerList.toArray(new FToolBarManager[toolBarManagerList.size()]); + return toolBarManagerList.toArray(new FormToolBarManager[toolBarManagerList.size()]); } private class TableModel extends DefaultTableModel { diff --git a/designer_form/src/com/fr/design/mainframe/widget/wrappers/ECToolBarWrapper.java b/designer_form/src/com/fr/design/mainframe/widget/wrappers/ElementCaseToolBarWrapper.java similarity index 79% rename from designer_form/src/com/fr/design/mainframe/widget/wrappers/ECToolBarWrapper.java rename to designer_form/src/com/fr/design/mainframe/widget/wrappers/ElementCaseToolBarWrapper.java index 5faf54348..e244c2a22 100644 --- a/designer_form/src/com/fr/design/mainframe/widget/wrappers/ECToolBarWrapper.java +++ b/designer_form/src/com/fr/design/mainframe/widget/wrappers/ElementCaseToolBarWrapper.java @@ -3,13 +3,13 @@ package com.fr.design.mainframe.widget.wrappers; import com.fr.design.Exception.ValidationException; import com.fr.design.designer.properties.Decoder; import com.fr.design.designer.properties.Encoder; -import com.fr.form.web.FToolBarManager; +import com.fr.form.web.FormToolBarManager; import com.fr.general.Inter; /** * Created by harry on 2017-3-1. */ -public class ECToolBarWrapper implements Encoder, Decoder { +public class ElementCaseToolBarWrapper implements Encoder, Decoder { @Override public Object decode(String txt) { return null; @@ -25,7 +25,7 @@ public class ECToolBarWrapper implements Encoder, Decoder { if (v == null) { return null; } - FToolBarManager[] toolBarManager = (FToolBarManager[])v; + FormToolBarManager[] toolBarManager = (FormToolBarManager[])v; if (toolBarManager.length != 0) { return Inter.getLocText("FR-Designer_Open"); } From bcbc311cbdd313a34e57367fd4b4e97d039b4393 Mon Sep 17 00:00:00 2001 From: frharry Date: Fri, 10 Mar 2017 16:55:30 +0800 Subject: [PATCH 4/5] =?UTF-8?q?REPORT-1344=20=E8=A1=A8=E5=8D=95=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=9D=97=E7=BF=BB=E9=A1=B5=E6=94=B9=E8=BF=9B=E5=B9=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B1=80=E9=83=A8=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fr/design/mainframe/FormEditToolBar.java | 14 +++---- .../design/mainframe/FormSettingToolBar.java | 6 +-- .../com/fr/design/mainframe/FormToolBar.java | 6 +-- .../design/mainframe/FormToolBarButton.java | 37 ++++++++----------- .../mainframe/FormWebWidgetConstants.java | 18 ++++----- .../editors/ElementCaseToolBarPane.java | 6 +-- 6 files changed, 40 insertions(+), 47 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormEditToolBar.java b/designer_form/src/com/fr/design/mainframe/FormEditToolBar.java index d0e217f27..c2c487ef5 100644 --- a/designer_form/src/com/fr/design/mainframe/FormEditToolBar.java +++ b/designer_form/src/com/fr/design/mainframe/FormEditToolBar.java @@ -1,6 +1,5 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; import com.fr.design.actions.UpdateAction; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.BasicPane; @@ -22,6 +21,7 @@ import com.fr.form.ui.*; import com.fr.form.ui.Button; import com.fr.form.web.button.Export; import com.fr.general.Background; +import com.fr.general.IOUtils; import com.fr.general.Inter; import com.fr.stable.StringUtils; @@ -125,12 +125,12 @@ public class FormEditToolBar extends BasicPane { this.add(splitPane); list.addListSelectionListener(listSelectionListener); JPanel backgroundPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - UIButton bgButton = new UIButton(Inter.getLocText(new String[]{"Background", "Set"})); - defaultCheckBox = new UICheckBox(Inter.getLocText(new String[]{"Default", "Background"})); + UIButton bgButton = new UIButton(Inter.getLocText("FR-Designer-Output_Background_Set")); + defaultCheckBox = new UICheckBox(Inter.getLocText("FR-Designer-Output_Default_Background")); bgButton.addActionListener(actioner); backgroundPane.add(defaultCheckBox); backgroundPane.add(bgButton); - backgroundPane.setBorder(BorderFactory.createTitledBorder(Inter.getLocText(new String[]{"Background", "Set"}))); + backgroundPane.setBorder(BorderFactory.createTitledBorder(Inter.getLocText("FR-Designer-Output_Background_Set"))); this.add(backgroundPane, BorderLayout.SOUTH); } @@ -210,7 +210,7 @@ public class FormEditToolBar extends BasicPane { public MoveUpItemAction() { this.setName(Inter.getLocText("Utils-Move_Up")); this.setMnemonic('U'); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/control/up.png")); + this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/control/up.png")); } /** @@ -241,7 +241,7 @@ public class FormEditToolBar extends BasicPane { public MoveDownItemAction() { this.setName(Inter.getLocText("Utils-Move_Down")); this.setMnemonic('D'); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/control/down.png")); + this.setSmallIcon(IOUtils.readIcon("/com/fr/design/images/control/down.png")); } /** @@ -275,7 +275,7 @@ public class FormEditToolBar extends BasicPane { public class RemoveAction extends UpdateAction { public RemoveAction() { this.setName(Inter.getLocText("FR-Designer_Delete")); - this.setSmallIcon(BaseUtils.readIcon("/com/fr/base/images/cell/control/remove.png")); + this.setSmallIcon(IOUtils.readIcon("/com/fr/base/images/cell/control/remove.png")); } /** diff --git a/designer_form/src/com/fr/design/mainframe/FormSettingToolBar.java b/designer_form/src/com/fr/design/mainframe/FormSettingToolBar.java index 2ed8a6984..c84776789 100644 --- a/designer_form/src/com/fr/design/mainframe/FormSettingToolBar.java +++ b/designer_form/src/com/fr/design/mainframe/FormSettingToolBar.java @@ -1,11 +1,11 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; import com.fr.design.dialog.BasicDialog; import com.fr.design.dialog.DialogActionAdapter; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ilable.UILabel; import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.general.IOUtils; import com.fr.general.Inter; import javax.swing.*; @@ -17,8 +17,8 @@ import java.awt.event.ActionListener; * Created by harry on 2017-3-2. */ public class FormSettingToolBar extends JPanel { - private Icon setIcon = BaseUtils.readIcon("com/fr/design/images/toolbarbtn/toolbarbtnsetting.png"); - private Icon delIcon = BaseUtils.readIcon("com/fr/design/images/toolbarbtn/toolbarbtnclear.png"); + private Icon setIcon = IOUtils.readIcon("com/fr/design/images/toolbarbtn/toolbarbtnsetting.png"); + private Icon delIcon = IOUtils.readIcon("com/fr/design/images/toolbarbtn/toolbarbtnclear.png"); private UIButton setButton; private UIButton delButton; private FormToolBarPane toolBarPane; diff --git a/designer_form/src/com/fr/design/mainframe/FormToolBar.java b/designer_form/src/com/fr/design/mainframe/FormToolBar.java index 5a172e5d4..860144dc8 100644 --- a/designer_form/src/com/fr/design/mainframe/FormToolBar.java +++ b/designer_form/src/com/fr/design/mainframe/FormToolBar.java @@ -56,11 +56,11 @@ public class FormToolBar { } public ToolBar getToolBar() { - Widget[] n = new Widget[this.getButtonlist().size()]; + Widget[] widgets = new Widget[this.getButtonlist().size()]; for (int j = 0; j < this.getButtonlist().size(); j++) { - n[j] = this.getButtonlist().get(j).getWidget(); + widgets[j] = this.getButtonlist().get(j).getWidget(); } - ToolBar toolBar = new ToolBar(n); + ToolBar toolBar = new ToolBar(widgets); toolBar.setBackground(this.background); toolBar.setDefault(this.isDefault); return toolBar; diff --git a/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java b/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java index a26b8d18f..0e08197d3 100644 --- a/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java +++ b/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java @@ -21,7 +21,7 @@ import java.awt.event.MouseListener; */ public class FormToolBarButton extends JButton implements MouseListener { private Widget widget; - private WidgetOption no; + private WidgetOption widgetOption; public FormToolBarButton(Icon icon, Widget widget) { this(null, icon, widget); @@ -29,7 +29,8 @@ public class FormToolBarButton extends JButton implements MouseListener { public FormToolBarButton(String text, Icon icon, Widget widget) { super(text, icon); - init(); + setBackground(null); + setRolloverEnabled(true); this.widget = widget; if (widget instanceof com.fr.form.ui.Button) { com.fr.form.ui.Button button = (com.fr.form.ui.Button) widget; @@ -45,12 +46,6 @@ public class FormToolBarButton extends JButton implements MouseListener { setMargin(new Insets(0, 0, 0, 0)); } - private void init() { - setBackground(null); - setRolloverEnabled(true); - } - - /** * 改变按钮的权限细粒度状态 * @@ -81,11 +76,11 @@ public class FormToolBarButton extends JButton implements MouseListener { } public WidgetOption getNameOption() { - return this.no; + return this.widgetOption; } - public void setNameOption(WidgetOption no) { - this.no = no; + public void setNameOption(WidgetOption widgetOption) { + this.widgetOption = widgetOption; } @@ -109,18 +104,16 @@ public class FormToolBarButton extends JButton implements MouseListener { return; } if (e.getClickCount() >= 2) { - if (this.getParent() instanceof FormToolBarPane) { - final FormToolBarPane tb = (FormToolBarPane) this.getParent(); - final FormEditToolBar etb = new FormEditToolBar(); - etb.populate(tb.getFToolBar(), this); - BasicDialog dialog = etb.showWindow(DesignerContext.getDesignerFrame()); - dialog.addDialogActionListener(new DialogActionAdapter() { - public void doOk() { - tb.setFToolBar(etb.update()); + final FormToolBarPane toolBarPane = (FormToolBarPane) this.getParent(); + final FormEditToolBar editToolBar = new FormEditToolBar(); + editToolBar.populate(toolBarPane.getFToolBar(), this); + BasicDialog dialog = editToolBar.showWindow(DesignerContext.getDesignerFrame()); + dialog.addDialogActionListener(new DialogActionAdapter() { + public void doOk() { + toolBarPane.setFToolBar(editToolBar.update()); } - }); - dialog.setVisible(true); - } + }); + dialog.setVisible(true); } } diff --git a/designer_form/src/com/fr/design/mainframe/FormWebWidgetConstants.java b/designer_form/src/com/fr/design/mainframe/FormWebWidgetConstants.java index a84b7523d..4bf970234 100644 --- a/designer_form/src/com/fr/design/mainframe/FormWebWidgetConstants.java +++ b/designer_form/src/com/fr/design/mainframe/FormWebWidgetConstants.java @@ -1,6 +1,5 @@ package com.fr.design.mainframe; -import com.fr.base.BaseUtils; import com.fr.design.gui.core.WidgetOption; import com.fr.design.gui.core.WidgetOptionFactory; import com.fr.form.ui.CustomToolBarButton; @@ -8,6 +7,7 @@ import com.fr.form.web.button.ExcelO; import com.fr.form.web.button.ExcelP; import com.fr.form.web.button.Export; import com.fr.form.web.button.page.*; +import com.fr.general.IOUtils; import com.fr.general.Inter; /** @@ -24,29 +24,29 @@ public class FormWebWidgetConstants { // 当前页/总页数 public static final WidgetOption PAGENAVI = WidgetOptionFactory.createByWidgetClass(Inter.getLocText(new String[]{"HJS-Current_Page", "HF-Number_of_Page"}, new String[]{"/", ""}), - BaseUtils.readIcon("/com/fr/web/images/pageNumber.png"), PageNavi.class); + IOUtils.readIcon("/com/fr/web/images/pageNumber.png"), PageNavi.class); // 首页 - public static final WidgetOption FIRST = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_ReportServerP-First"), BaseUtils.readIcon("/com/fr/web/images/first.png"), + public static final WidgetOption FIRST = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_ReportServerP-First"), IOUtils.readIcon("/com/fr/web/images/first.png"), First.class); // 末页 - public static final WidgetOption LAST = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_ReportServerP-Last"), BaseUtils.readIcon("/com/fr/web/images/last.png"), + public static final WidgetOption LAST = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_ReportServerP-Last"), IOUtils.readIcon("/com/fr/web/images/last.png"), Last.class); // 前一页 public static final WidgetOption PREVIOUS = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_ReportServerP-Previous"), - BaseUtils.readIcon("/com/fr/web/images/previous.png"), Previous.class); + IOUtils.readIcon("/com/fr/web/images/previous.png"), Previous.class); // 后一页 - public static final WidgetOption NEXT = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_ReportServerP-Next"), BaseUtils.readIcon("/com/fr/web/images/next.png"), + public static final WidgetOption NEXT = WidgetOptionFactory.createByWidgetClass(Inter.getLocText("FR-Engine_ReportServerP-Next"), IOUtils.readIcon("/com/fr/web/images/next.png"), Next.class); // 导出成Excel 分页导出 public static final WidgetOption EXCELP = WidgetOptionFactory.createByWidgetClass(Inter.getLocText(new String[]{"Excel", "FR-Designer_Export_Excel_Page"}, new String[]{"(", ")"}), - BaseUtils.readIcon("/com/fr/web/images/excel.png"), ExcelP.class); + IOUtils.readIcon("/com/fr/web/images/excel.png"), ExcelP.class); // 导出成Excel 原样导出 public static final WidgetOption EXCELO = WidgetOptionFactory.createByWidgetClass(Inter.getLocText(new String[]{"Excel", "FR-Designer_Export_Excel_Simple"}, new String[]{"(", ")"}), - BaseUtils.readIcon("/com/fr/web/images/excel.png"), ExcelO.class); + IOUtils.readIcon("/com/fr/web/images/excel.png"), ExcelO.class); // 导出 public static final WidgetOption EXPORT = WidgetOptionFactory - .createByWidgetClass(Inter.getLocText("FR-Engine_Export"), BaseUtils.readIcon("/com/fr/web/images/export.png"), Export.class); + .createByWidgetClass(Inter.getLocText("FR-Engine_Export"), IOUtils.readIcon("/com/fr/web/images/export.png"), Export.class); public static final WidgetOption CUSTOM_BUTTON = WidgetOptionFactory .createByWidgetClass(Inter.getLocText(new String[]{"Custom", "Form-Button"}), CustomToolBarButton.class); diff --git a/designer_form/src/com/fr/design/mainframe/widget/editors/ElementCaseToolBarPane.java b/designer_form/src/com/fr/design/mainframe/widget/editors/ElementCaseToolBarPane.java index 9e6a90445..624dc956a 100644 --- a/designer_form/src/com/fr/design/mainframe/widget/editors/ElementCaseToolBarPane.java +++ b/designer_form/src/com/fr/design/mainframe/widget/editors/ElementCaseToolBarPane.java @@ -1,6 +1,5 @@ package com.fr.design.mainframe.widget.editors; -import com.fr.base.BaseUtils; import com.fr.design.beans.BasicBeanPane; import com.fr.design.gui.core.WidgetOption; import com.fr.design.gui.ibutton.UIButton; @@ -14,6 +13,7 @@ import com.fr.design.mainframe.FormToolBarPane; import com.fr.form.ui.Widget; import com.fr.form.web.FormToolBarManager; import com.fr.form.web.Location; +import com.fr.general.IOUtils; import com.fr.general.Inter; import com.fr.stable.ArrayUtils; import com.fr.stable.Constants; @@ -79,7 +79,7 @@ public class ElementCaseToolBarPane extends BasicBeanPane northToolBar.setPreferredSize(new Dimension(ImageObserver.WIDTH, 26)); northToolBar.setBackground(Color.lightGray); - UIButton topButton = new UIButton(BaseUtils.readIcon("com/fr/design/images/arrow/arrow_up.png")); + UIButton topButton = new UIButton(IOUtils.readIcon("com/fr/design/images/arrow/arrow_up.png")); topButton.setBorder(null); topButton.setOpaque(false); topButton.setContentAreaFilled(false); @@ -103,7 +103,7 @@ public class ElementCaseToolBarPane extends BasicBeanPane } }); - UIButton downButton = new UIButton(BaseUtils.readIcon("com/fr/design/images/arrow/arrow_down.png")); + UIButton downButton = new UIButton(IOUtils.readIcon("com/fr/design/images/arrow/arrow_down.png")); downButton.setBorder(null); downButton.setMargin(null); downButton.setOpaque(false); From b7343f7b9927e900060ba02a0935c17970141686 Mon Sep 17 00:00:00 2001 From: frharry Date: Fri, 10 Mar 2017 17:07:40 +0800 Subject: [PATCH 5/5] =?UTF-8?q?REPORT-1344=20=E8=A1=A8=E5=8D=95=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E5=9D=97=E7=BF=BB=E9=A1=B5=E6=94=B9=E8=BF=9B=E5=B9=B6?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=B1=80=E9=83=A8=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/com/fr/design/mainframe/FormToolBarButton.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java b/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java index 0e08197d3..a9651c7fa 100644 --- a/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java +++ b/designer_form/src/com/fr/design/mainframe/FormToolBarButton.java @@ -99,12 +99,14 @@ public class FormToolBarButton extends JButton implements MouseListener { * @param e 鼠标点击事件 */ public void mouseClicked(MouseEvent e) { + //该button只在报表块工具栏中使用, + //parent只有FormToolBarPane一种,故可以直接强转 + final FormToolBarPane toolBarPane = (FormToolBarPane) this.getParent(); if (BaseUtils.isAuthorityEditing()) { auhtorityMouseAction(); return; } if (e.getClickCount() >= 2) { - final FormToolBarPane toolBarPane = (FormToolBarPane) this.getParent(); final FormEditToolBar editToolBar = new FormEditToolBar(); editToolBar.populate(toolBarPane.getFToolBar(), this); BasicDialog dialog = editToolBar.showWindow(DesignerContext.getDesignerFrame()); @@ -119,11 +121,9 @@ public class FormToolBarButton extends JButton implements MouseListener { private void auhtorityMouseAction() { - if (this.getParent() instanceof FormToolBarPane && this.isEnabled()) { + if (this.isEnabled()) { this.setSelected(!this.isSelected()); - } - } /**