diff --git a/designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java b/designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java index eeb6657c4..0c567f555 100644 --- a/designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java +++ b/designer/src/com/fr/design/mainframe/CellWidgetPropertyPane.java @@ -12,6 +12,7 @@ import com.fr.form.ui.Widget; import com.fr.general.FRLogger; import com.fr.general.Inter; import com.fr.grid.selection.CellSelection; +import com.fr.grid.selection.FloatSelection; import com.fr.grid.selection.Selection; import com.fr.privilege.finegrain.WidgetPrivilegeControl; import com.fr.report.cell.DefaultTemplateCellElement; @@ -86,7 +87,10 @@ public class CellWidgetPropertyPane extends BasicPane { public void populate(ElementCasePane ePane) { - + Selection editingSelection = ePane.getSelection(); + if(editingSelection instanceof FloatSelection){ + return; + } cellEditorDefPane = new WidgetPane(ePane); this.removeAll(); this.add(cellEditorDefPane, BorderLayout.CENTER); diff --git a/designer_base/src/com/fr/design/gui/frpane/RegPane.java b/designer_base/src/com/fr/design/gui/frpane/RegPane.java index 54d30426d..90fbf1c71 100644 --- a/designer_base/src/com/fr/design/gui/frpane/RegPane.java +++ b/designer_base/src/com/fr/design/gui/frpane/RegPane.java @@ -342,10 +342,11 @@ public class RegPane extends BasicPane { DefaultComboBoxModel DefaultComboBoxModel= new DefaultComboBoxModel(dataType); public RegPhonePane() { this.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 5)); - this.setLayout(FRGUIPaneFactory.createLabelFlowLayout()); - this.add(new UILabel(Inter.getLocText("FR-Designer_Data_Type") + ":")); + this.setLayout(FRGUIPaneFactory.createBorderLayout()); dataTypeComboBox = new UIComboBox(DefaultComboBoxModel); JTextField editFiled = (JTextField)(dataTypeComboBox.getEditor().getEditorComponent()); + JPanel panel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{new UILabel(Inter.getLocText("FR-Designer_Data_Type")), dataTypeComboBox}}, TableLayoutHelper.FILL_LASTCOLUMN, 18, 7); + this.add(panel); editFiled.setDocument(new LimitedDocument(LIMIT_LENGTH, REG_PATTERN)); dataTypeComboBox.addItemListener(new ItemListener() { @Override @@ -364,7 +365,6 @@ public class RegPane extends BasicPane { }); dataTypeComboBox.setSelectedIndex(0); firePhoneRegAction(dataTypeComboBox.getSelectedItem().toString()); - this.add(dataTypeComboBox); } @Override protected String title4PopupWindow() { @@ -405,14 +405,8 @@ public class RegPane extends BasicPane { this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 5)); this.setPreferredSize(new Dimension(210, 56)); -// this.add(new UILabel(Inter.getLocText("FR-Designer_Reg_Min_Length") + ":")); minLenSpinner = new UISpinner(0, Integer.MAX_VALUE, 1, 0); -// this.add(minLenSpinner); -// this.add(new UILabel(Inter.getLocText("FR-Designer_Reg_Max_Length") + ":")); maxLenSpinner = new UISpinner(0, Integer.MAX_VALUE, 1, 0); -// this.add(maxLenSpinner); - - double f = TableLayout.FILL; double p = TableLayout.PREFERRED; Component[][] components = new Component[][]{ @@ -461,11 +455,11 @@ public class RegPane extends BasicPane { private UITextField regTextField; public CustomRegRexPane(){ - this.setLayout(FRGUIPaneFactory.createLabelFlowLayout()); + this.setLayout(FRGUIPaneFactory.createBorderLayout()); this.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 5)); - this.add(new UILabel(Inter.getLocText("FR-Designer_Reg_Expressions") + ":")); - regTextField = new UITextField(10); - this.add(regTextField); + regTextField = new UITextField(); + JPanel panel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{new UILabel(Inter.getLocText("FR-Designer_Reg_Expressions")), regTextField}}, TableLayoutHelper.FILL_LASTCOLUMN, 18, 7); + this.add(panel); } @Override @@ -495,16 +489,15 @@ public class RegPane extends BasicPane { private UITextField regErrorMsgField; public RegErrorMsgPane(){ - this.setLayout(FRGUIPaneFactory.createLabelFlowLayout()); + this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.setBorder(BorderFactory.createEmptyBorder(5,0,0,0)); initRegErrorMsgField(); -// this.setBorder(BorderFactory.createEmptyBorder(5, 10, 5, 5)); - this.add(new UILabel(Inter.getLocText("FR-Designer_Widget_Error_Tip") + ":")); - regErrorMsgField = new UITextField(10); - this.add(regErrorMsgField); + JPanel panel = TableLayoutHelper.createGapTableLayoutPane(new Component[][]{new Component[]{new UILabel(Inter.getLocText("FR-Designer_Widget_Error_Tip")), regErrorMsgField}}, TableLayoutHelper.FILL_LASTCOLUMN, 18, 7); + this.add(panel); } private void initRegErrorMsgField(){ - regErrorMsgField = new UITextField(13); + regErrorMsgField = new UITextField(); regErrorMsgField.getDocument().addDocumentListener(new DocumentListener() { public void changedUpdate(DocumentEvent e) { regErrorMsgField.setToolTipText(regErrorMsgField.getText()); diff --git a/designer_base/src/com/fr/design/mainframe/widget/editors/DataBindingEditor.java b/designer_base/src/com/fr/design/mainframe/widget/editors/DataBindingEditor.java index 08f1b8b69..aae321a5f 100644 --- a/designer_base/src/com/fr/design/mainframe/widget/editors/DataBindingEditor.java +++ b/designer_base/src/com/fr/design/mainframe/widget/editors/DataBindingEditor.java @@ -27,6 +27,8 @@ import com.fr.general.Inter; * @since 2012-3-29下午5:26:28 */ public class DataBindingEditor extends Editor { + private final static int HORI_GAP = 1; + private final static int VER_GAP = 7; private TableDataComboBox tableDataComboBox; private LazyComboBox columnNameComboBox; @@ -61,7 +63,7 @@ public class DataBindingEditor extends Editor { private void initCompontents() { - this.setLayout(FRGUIPaneFactory.createBorderLayout()); + this.setLayout(new BorderLayout(HORI_GAP, VER_GAP)); tableDataComboBox = new TableDataComboBox(getTableDataSource()); tableDataComboBox.setPreferredSize(new Dimension(55, 20)); tableDataComboBox.addItemListener(tableDataComboBoxListener); @@ -86,7 +88,7 @@ public class DataBindingEditor extends Editor { } }); columnNameComboBox.setEditable(true); - this.add(tableDataComboBox, BorderLayout.WEST); + this.add(tableDataComboBox, BorderLayout.NORTH); this.add(columnNameComboBox, BorderLayout.CENTER); columnNameComboBox.addItemListener(columnNameComboboxListener); } diff --git a/designer_base/src/com/fr/design/widget/btn/ButtonWithHotkeysDetailPane.java b/designer_base/src/com/fr/design/widget/btn/ButtonWithHotkeysDetailPane.java index 18ae3a5c4..faae19220 100644 --- a/designer_base/src/com/fr/design/widget/btn/ButtonWithHotkeysDetailPane.java +++ b/designer_base/src/com/fr/design/widget/btn/ButtonWithHotkeysDetailPane.java @@ -1,7 +1,9 @@ package com.fr.design.widget.btn; -import com.fr.design.foldablepane.UIExpandablePane; -import com.fr.design.gui.frpane.AttributeChangeListener; +import java.awt.*; + +import javax.swing.*; + import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; @@ -12,11 +14,6 @@ import com.fr.form.ui.Button; import com.fr.general.Inter; import com.fr.stable.StableUtils; -import javax.swing.*; -import java.awt.*; -import java.awt.event.FocusEvent; -import java.awt.event.FocusListener; - /** * Created by IntelliJ IDEA. * Author : Richer @@ -28,62 +25,39 @@ public abstract class ButtonWithHotkeysDetailPane extends Butt private UITextField hotkeysTextField; private UITextField buttonNameTextField; private IconDefinePane iconPane; - private AttributeChangeListener listener; - public ButtonWithHotkeysDetailPane() { initComponents(); } private void initComponents() { -// creator. this.setLayout(FRGUIPaneFactory.createBorderLayout()); -// JPanel advancedPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Advanced")); - JPanel jPanel = FRGUIPaneFactory.createBorderLayout_S_Pane(); -// advancedPane.setPreferredSize(new Dimension(600, 341)); + JPanel advancedPane = FRGUIPaneFactory.createTitledBorderPane(Inter.getLocText("FR-Designer_Advanced")); + advancedPane.setPreferredSize(new Dimension(600, 341)); JPanel attrPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); attrPane.setBorder(BorderFactory.createEmptyBorder(0, 4, 0, 4)); + this.add(advancedPane); double p = TableLayout.PREFERRED; - double f = TableLayout.FILL; - double rowSize[] = {p, p, p, p, p, p, p}; - double columnSize[] = {p, f}; - int[][] rowCount = {{1, 1}, {1, 1}, {1, 3}, {1, 1}, {1, 1}}; + double rowSize[] = {p, p, p, p}; + double columnSize[] = {p, p}; JPanel labelPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); iconPane = new IconDefinePane(); labelPane.add(iconPane); Component[][] n_components = { - {new UILabel(Inter.getLocText("FR-Designer_Button-Name") + ":"), buttonNameTextField = new UITextField()}, - {new UILabel("背景" + ":"), new UITextField()}, - {new UILabel("字体" + ":"), new UITextField()}, - {new UILabel("图标" + ":"), new UITextField()}, - {new UILabel(Inter.getLocText("FR-Designer_Button-Hotkeys") + ":"), hotkeysTextField = new UITextField()} + {new UILabel(Inter.getLocText("FR-Designer_Button-Name") + ":"), buttonNameTextField = new UITextField(16)}, + {new UILabel(Inter.getLocText("FR-Designer_Button-Icon") + ":"), labelPane}, + {new UILabel(Inter.getLocText("FR-Designer_Button-Type") + ":"), createButtonTypeComboBox()}, + {new UILabel(Inter.getLocText("FR-Designer_Button-Hotkeys") + ":"), hotkeysTextField = new UITextField(16)} }; - buttonNameTextField.addFocusListener(new FocusListener() { - @Override - public void focusGained(FocusEvent e) { - - } - - @Override - public void focusLost(FocusEvent e) { -// creator.getWidget().set - - } - }); hotkeysTextField.setToolTipText(StableUtils.join(ButtonConstants.HOTKEYS, ",")); - JPanel panel = TableLayoutHelper.createGapTableLayoutPane(n_components, rowSize, columnSize, rowCount, 10, 8); - panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); - jPanel.add(panel, BorderLayout.CENTER); - UIExpandablePane advancedPane = new UIExpandablePane("高级", 280, 20, jPanel); - this.add(advancedPane); - } - - //add By kerry - public void addAttributeChangeListener(AttributeChangeListener listener) { - this.listener = listener; + JPanel panel = TableLayoutHelper.createGapTableLayoutPane(n_components, rowSize, columnSize, 0, 8); + advancedPane.add(panel,BorderLayout.NORTH); + Component comp = createCenterPane(); + if(comp != null ) { + advancedPane.add(comp,BorderLayout.CENTER); + } } - protected abstract Component createCenterPane(); @Override @@ -104,11 +78,4 @@ public abstract class ButtonWithHotkeysDetailPane extends Butt button.setHotkeys(hotkeysTextField.getText()); return button; } - - - public void updateBean(Button ob) { - ob.setIconName(iconPane.update()); - ob.setText(buttonNameTextField.getText()); - ob.setHotkeys(hotkeysTextField.getText()); - } } \ No newline at end of file diff --git a/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java b/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java index 18d24dced..9c614f99b 100644 --- a/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java +++ b/designer_form/src/com/fr/design/parameter/RootDesignDefinePane.java @@ -1,27 +1,22 @@ package com.fr.design.parameter; +import com.fr.base.BaseUtils; import com.fr.design.data.DataCreatorUI; import com.fr.design.designer.creator.XCreator; -import com.fr.design.designer.creator.XWAbsoluteBodyLayout; import com.fr.design.designer.creator.XWParameterLayout; -import com.fr.design.designer.properties.items.FRLayoutTypeItems; -import com.fr.design.designer.properties.items.Item; -import com.fr.design.designer.properties.items.ItemProvider; import com.fr.design.foldablepane.UIExpandablePane; +import com.fr.design.gui.ibutton.UIButtonGroup; import com.fr.design.gui.icheckbox.UICheckBox; -import com.fr.design.gui.icombobox.UIComboBox; import com.fr.design.gui.ilable.UILabel; import com.fr.design.gui.ispinner.UISpinner; -import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; import com.fr.design.layout.TableLayout; import com.fr.design.layout.TableLayoutHelper; -import com.fr.design.utils.gui.GUICoreUtils; +import com.fr.design.mainframe.widget.accessibles.AccessibleBackgroundEditor; import com.fr.design.widget.ui.designer.AbstractDataModify; -import com.fr.form.ui.container.WAbsoluteBodyLayout; -import com.fr.form.ui.container.WBodyLayoutType; import com.fr.form.ui.container.WParameterLayout; import com.fr.general.Inter; +import com.fr.stable.Constants; import javax.swing.*; import java.awt.*; @@ -33,8 +28,8 @@ public class RootDesignDefinePane extends AbstractDataModify { private XWParameterLayout root; private UISpinner designerWidth; private UICheckBox displayReport; - private UITextField background; - private UITextField displayPosition; + private AccessibleBackgroundEditor background; + private UIButtonGroup hAlignmentPane; public RootDesignDefinePane(XCreator xCreator) { super(xCreator); @@ -50,13 +45,12 @@ public class RootDesignDefinePane extends AbstractDataModify { UIExpandablePane advanceExpandablePane = new UIExpandablePane(Inter.getLocText("FR-Designer_Advanced"), 280, 20, advancePane); this.add(advanceExpandablePane, BorderLayout.NORTH); JPanel layoutPane = createBoundsPane(); -// layoutPane.setLayout(FRGUIPaneFactory.createBorderLayout()); -// layoutPane.add(GUICoreUtils.createFlowPane(new JComponent[]{new UILabel("设计宽度"), designerWidth}, FlowLayout.LEFT, 4)); UIExpandablePane layoutExpandablePane = new UIExpandablePane(Inter.getLocText("Size"), 280, 20, layoutPane); this.add(layoutExpandablePane, BorderLayout.CENTER); + } - public JPanel createBoundsPane(){ + public JPanel createBoundsPane() { double f = TableLayout.FILL; double p = TableLayout.PREFERRED; double[] rowSize = {p}; @@ -66,26 +60,32 @@ public class RootDesignDefinePane extends AbstractDataModify { new Component[]{new UILabel(Inter.getLocText("Form-Desin_Width")), designerWidth}, }; JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 20, 7); - panel.setBorder(BorderFactory.createEmptyBorder(5, 5,5,5)); + panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); return panel; } - public JPanel createAdvancePane(){ + public JPanel createAdvancePane() { displayReport = new UICheckBox(Inter.getLocText("FR-Designer_DisplayNothingBeforeQuery")); - background = new UITextField(); - displayPosition = new UITextField(); + background = new AccessibleBackgroundEditor(); + Icon[] hAlignmentIconArray = {BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_left_normal.png"), + BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_center_normal.png"), + BaseUtils.readIcon("/com/fr/design/images/m_format/cellstyle/h_right_normal.png"),}; + Integer[] hAlignment = new Integer[]{Constants.LEFT, Constants.CENTER, Constants.RIGHT}; + hAlignmentPane = new UIButtonGroup(hAlignmentIconArray, hAlignment); + hAlignmentPane.setAllToolTips(new String[]{Inter.getLocText("FR-Designer-StyleAlignment_Left") + , Inter.getLocText("FR-Designer-StyleAlignment_Center"), Inter.getLocText("FR-Designer-StyleAlignment_Right")}); double f = TableLayout.FILL; double p = TableLayout.PREFERRED; - double[] rowSize = {p,p, p}; + double[] rowSize = {p, p, p}; double[] columnSize = {p, f}; int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}}; Component[][] components = new Component[][]{ new Component[]{new UILabel(Inter.getLocText("FR-Designer_Background")), background}, - new Component[]{displayReport, null }, - new Component[]{new UILabel(Inter.getLocText("FR-Designer_WidgetDisplyPosition")), displayPosition} + new Component[]{displayReport, null}, + new Component[]{new UILabel(Inter.getLocText("FR-Designer_WidgetDisplyPosition")), hAlignmentPane} }; JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 20, 7); - panel.setBorder(BorderFactory.createEmptyBorder(5, 5,5,5)); + panel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5)); return panel; } @@ -96,8 +96,10 @@ public class RootDesignDefinePane extends AbstractDataModify { @Override public void populateBean(WParameterLayout ob) { + background.setValue(ob.getBackground()); displayReport.setSelected(ob.isDelayDisplayContent()); designerWidth.setValue(ob.getDesignWidth()); + hAlignmentPane.setSelectedIndex(ob.getPosition()); } @@ -106,6 +108,8 @@ public class RootDesignDefinePane extends AbstractDataModify { WParameterLayout wParameterLayout = (WParameterLayout) creator.toData(); wParameterLayout.setDesignWidth((int) designerWidth.getValue()); wParameterLayout.setDelayDisplayContent(displayReport.isSelected()); + wParameterLayout.setBackground(wParameterLayout.getBackground()); + wParameterLayout.setPosition(hAlignmentPane.getSelectedIndex()); return wParameterLayout; } diff --git a/designer_form/src/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java b/designer_form/src/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java index 36f4719de..cec27c534 100644 --- a/designer_form/src/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java +++ b/designer_form/src/com/fr/design/widget/FormWidgetDefinePaneFactoryBase.java @@ -44,19 +44,18 @@ public class FormWidgetDefinePaneFactoryBase { defineMap.put(TextEditor.class, new Appearance(TextFieldEditorDefinePane.class, WidgetConstants.TEXT + "")); defineMap.put(NameWidget.class, new Appearance(UserEditorDefinePane.class, "UserDefine")); defineMap.put(ComboCheckBox.class, new Appearance(ComboCheckBoxDefinePane.class, WidgetConstants.COMBOCHECKBOX + "")); - defineMap.put(ListEditor.class, new Appearance(ListEditorDefinePane.class, WidgetConstants.LIST + "")); defineMap.put(ComboBox.class, new Appearance(ComboBoxDefinePane.class, WidgetConstants.COMBOBOX + "")); defineMap.put(RadioGroup.class, new Appearance(RadioGroupDefinePane.class, WidgetConstants.RADIOGROUP + "")); defineMap.put(CheckBoxGroup.class, new Appearance(CheckBoxGroupDefinePane.class, WidgetConstants.CHECKBOXGROUP + "")); defineMap.put(NoneWidget.class, new Appearance(NoneWidgetDefinePane.class, WidgetConstants.NONE + "")); - defineMap.put(Button.class, new Appearance(ButtonDefinePane.class, WidgetConstants.BUTTON + "")); - defineMap.put(FreeButton.class, new Appearance(ButtonDefinePane.class, WidgetConstants.BUTTON + "")); + defineMap.put(Button.class, new Appearance(FreeButtonDefinePane.class, WidgetConstants.BUTTON + "")); + defineMap.put(FreeButton.class, new Appearance(FreeButtonDefinePane.class, WidgetConstants.BUTTON + "")); defineMap.put(WFitLayout.class, new Appearance(FRFitLayoutDefinePane.class, Inter.getLocText("FR-Designer-Layout_Adaptive_Layout"))); defineMap.put(WCardMainBorderLayout.class, new Appearance(WCardMainLayoutDefinePane.class, Inter.getLocText("WLayout-Card-ToolTips"))); - if (StableFactory.getMarkedClass(BridgeMark.SUBMIT_BUTTON, Widget.class) != null) { - defineMap.put(StableFactory.getMarkedClass(BridgeMark.SUBMIT_BUTTON, Widget.class), new Appearance(ButtonDefinePane.class, WidgetConstants.BUTTON + "")); - } +// if (StableFactory.getMarkedClass(BridgeMark.SUBMIT_BUTTON, Widget.class) != null) { +// defineMap.put(StableFactory.getMarkedClass(BridgeMark.SUBMIT_BUTTON, Widget.class), new Appearance(ButtonDefinePane.class, WidgetConstants.BUTTON + "")); +// } defineMap.put(WAbsoluteLayout.class, new Appearance(FRAbsoluteLayoutDefinePane.class, Inter.getLocText("FR-Designer_AbsoluteLayout"))); defineMap.put(WAbsoluteBodyLayout.class, new Appearance(FRAbsoluteBodyLayoutDefinePane.class, Inter.getLocText("FR-Designer-Layout_Adaptive_Layout"))); diff --git a/designer_form/src/com/fr/design/widget/ui/designer/ButtonDefinePane.java b/designer_form/src/com/fr/design/widget/ui/designer/ButtonDefinePane.java index 84df22ac9..92f41a627 100644 --- a/designer_form/src/com/fr/design/widget/ui/designer/ButtonDefinePane.java +++ b/designer_form/src/com/fr/design/widget/ui/designer/ButtonDefinePane.java @@ -1,19 +1,26 @@ package com.fr.design.widget.ui.designer; import com.fr.design.designer.creator.XCreator; +import com.fr.design.foldablepane.UIExpandablePane; +import com.fr.design.gui.ilable.UILabel; +import com.fr.design.gui.itextfield.UITextField; import com.fr.design.layout.FRGUIPaneFactory; -import com.fr.design.widget.btn.ButtonDetailPane; -import com.fr.design.widget.ui.designer.btn.ButtonDetailPaneFactory; +import com.fr.design.layout.TableLayout; +import com.fr.design.layout.TableLayoutHelper; +import com.fr.design.mainframe.widget.accessibles.AccessibleIconEditor; +import com.fr.design.widget.btn.ButtonConstants; import com.fr.form.ui.Button; -import com.fr.form.ui.FreeButton; +import com.fr.general.Inter; +import com.fr.stable.StableUtils; import javax.swing.*; -import javax.swing.event.ChangeEvent; -import javax.swing.event.ChangeListener; import java.awt.*; -public class ButtonDefinePane extends AbstractDataModify