Browse Source

MOBILE-6341 【9.2】FR9.0设计器支持修改决策报表图表块移动端自适应逻辑=>图表块的移动端设置界面=>初步框架

plough 7 years ago
parent
commit
1445ce99e0
  1. 7
      designer_form/src/com/fr/design/designer/creator/XChartEditor.java
  2. 38
      designer_form/src/com/fr/design/designer/properties/mobile/ChartEditorPropertyUI.java
  3. 3
      designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java
  4. 163
      designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java

7
designer_form/src/com/fr/design/designer/creator/XChartEditor.java

@ -10,6 +10,9 @@ import com.fr.base.chart.BaseChartCollection;
import com.fr.design.designer.beans.AdapterBus; import com.fr.design.designer.beans.AdapterBus;
import com.fr.design.designer.beans.ComponentAdapter; import com.fr.design.designer.beans.ComponentAdapter;
import com.fr.design.designer.beans.models.SelectionModel; import com.fr.design.designer.beans.models.SelectionModel;
import com.fr.design.designer.properties.mobile.ChartEditorPropertyUI;
import com.fr.design.designer.properties.mobile.ElementCasePropertyUI;
import com.fr.design.fun.WidgetPropertyUIProvider;
import com.fr.design.gui.chart.BaseChartPropertyPane; import com.fr.design.gui.chart.BaseChartPropertyPane;
import com.fr.design.gui.chart.MiddleChartComponent; import com.fr.design.gui.chart.MiddleChartComponent;
import com.fr.design.mainframe.*; import com.fr.design.mainframe.*;
@ -278,4 +281,8 @@ public class XChartEditor extends XBorderStyleWidgetCreator {
initStyle(); initStyle();
} }
@Override
public WidgetPropertyUIProvider[] getWidgetPropertyUIProviders() {
return new WidgetPropertyUIProvider[]{ new ChartEditorPropertyUI(this)};
}
} }

38
designer_form/src/com/fr/design/designer/properties/mobile/ChartEditorPropertyUI.java

@ -0,0 +1,38 @@
package com.fr.design.designer.properties.mobile;
import com.fr.design.designer.creator.XChartEditor;
import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.creator.XElementCase;
import com.fr.design.dialog.BasicPane;
import com.fr.design.fun.impl.AbstractWidgetPropertyUIProvider;
import com.fr.design.gui.itable.AbstractPropertyTable;
import com.fr.design.widget.ui.designer.mobile.ChartEditorDefinePane;
import com.fr.design.widget.ui.designer.mobile.ElementCaseDefinePane;
import com.fr.general.Inter;
/**
* Created by plough on 2018/1/18.
*/
public class ChartEditorPropertyUI extends AbstractWidgetPropertyUIProvider {
private XCreator xCreator;
public ChartEditorPropertyUI(XChartEditor xChartEditor) {
this.xCreator = xChartEditor;
}
@Override
public AbstractPropertyTable createWidgetAttrTable() {
return null;
}
@Override
public BasicPane createWidgetAttrPane() {
return new ChartEditorDefinePane(xCreator);
}
@Override
public String tableTitle() {
return Inter.getLocText("FR-Designer_Mobile-Attr");
}
}

3
designer_form/src/com/fr/design/mainframe/WidgetPropertyPane.java

@ -35,6 +35,8 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope
private static final String PARA = "para"; private static final String PARA = "para";
private static final String BODY = "body"; private static final String BODY = "body";
private static final int PADDING = 10;
private static final int PADDING_M = 12;
private FormWidgetCardPane formWidgetCardPane; // 控件的属性表 private FormWidgetCardPane formWidgetCardPane; // 控件的属性表
private EventPropertyTable eventTable; // 控件的事件表 private EventPropertyTable eventTable; // 控件的事件表
private List<AbstractPropertyTable> widgetPropertyTables; // 这个变量应该是保存控件拓展的属性tab private List<AbstractPropertyTable> widgetPropertyTables; // 这个变量应该是保存控件拓展的属性tab
@ -224,6 +226,7 @@ public class WidgetPropertyPane extends FormDockView implements BaseWidgetPrope
for (WidgetPropertyUIProvider widgetAttrProvider : widgetAttrProviders) { for (WidgetPropertyUIProvider widgetAttrProvider : widgetAttrProviders) {
MobileWidgetDefinePane extraPane = (MobileWidgetDefinePane) widgetAttrProvider.createWidgetAttrPane(); MobileWidgetDefinePane extraPane = (MobileWidgetDefinePane) widgetAttrProvider.createWidgetAttrPane();
if (extraPane != null) { if (extraPane != null) {
extraPane.setBorder(BorderFactory.createEmptyBorder(PADDING, PADDING, PADDING, PADDING_M));
mobileExtraPropertyPanes.add(extraPane); mobileExtraPropertyPanes.add(extraPane);
wsp.add(extraPane); wsp.add(extraPane);
} }

163
designer_form/src/com/fr/design/widget/ui/designer/mobile/ChartEditorDefinePane.java

@ -0,0 +1,163 @@
package com.fr.design.widget.ui.designer.mobile;
import com.fr.base.mobile.ChartMobileFitAttrState;
import com.fr.base.mobile.MobileFitAttrState;
import com.fr.design.constants.LayoutConstants;
import com.fr.design.designer.creator.XCreator;
import com.fr.design.designer.properties.items.Item;
import com.fr.design.foldablepane.UIExpandablePane;
import com.fr.design.gui.frpane.AttributeChangeListener;
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.layout.FRGUIPaneFactory;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.design.mainframe.DesignerContext;
import com.fr.design.mainframe.FormDesigner;
import com.fr.design.mainframe.WidgetPropertyPane;
import com.fr.form.ui.ChartEditor;
import com.fr.form.ui.ElementCaseEditor;
import com.fr.general.Inter;
import javax.swing.*;
import java.awt.*;
/**
* Created by plough on 2018/1/18.
*/
public class ChartEditorDefinePane extends MobileWidgetDefinePane{
private static final Item[] ITEMS = {
new Item(ChartMobileFitAttrState.AUTO.description(), ChartMobileFitAttrState.AUTO),
new Item(ChartMobileFitAttrState.AREA.description(), ChartMobileFitAttrState.AREA),
new Item(ChartMobileFitAttrState.GEOMETRIC.description(), ChartMobileFitAttrState.GEOMETRIC)
};
private XCreator xCreator; // 当前选中控件的xCreator
private FormDesigner designer; // 当前设计器
// private UIComboBox hComboBox; // 横屏下拉框
private UIComboBox vComboBox;// 竖屏下拉框
// private UICheckBox heightRestrictCheckBox; // 手机显示限制高度复选框
private UILabel maxHeightLabel;
private UISpinner maxHeightSpinner; // 最大高度Spinner
private AttributeChangeListener changeListener;
public ChartEditorDefinePane (XCreator xCreator) {
this.xCreator = xCreator;
}
@Override
protected void initContentPane() {}
@Override
protected JPanel createContentPane() {
return null;
}
@Override
public String getIconPath() {
return "";
}
@Override
public String title4PopupWindow() {
return "ChartEditor";
}
@Override
public void initPropertyGroups(Object source) {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
this.designer = WidgetPropertyPane.getInstance().getEditingFormDesigner();
// this.hComboBox = new UIComboBox(ITEMS);
this.vComboBox = new UIComboBox(ITEMS);
// this.heightRestrictCheckBox = new UICheckBox(Inter.getLocText("FR-Designer_Mobile-Height-Limit"));
this.maxHeightLabel = new UILabel(Inter.getLocText("FR-Designer_Mobile-Height-Percent"), SwingConstants.LEFT);
this.maxHeightSpinner = new UISpinner(0, 1, 0.01, 0.75);
maxHeightSpinner.setVisible(false);
maxHeightLabel.setVisible(false);
Component[][] components = new Component[][]{
new Component[] {new UILabel("放大逻辑", SwingConstants.LEFT), new UILabel("等比例自适应")},
new Component[] {new UILabel("缩小逻辑", SwingConstants.LEFT), vComboBox},
new Component[] {new UILabel("提示:系统根据模版自动匹配缩小逻辑"), null},
new Component[] {maxHeightLabel, maxHeightSpinner}
};
double f = TableLayout.FILL;
double p = TableLayout.PREFERRED;
double[] rowSize = {p, p, p, p};
double[] columnSize = {p,f};
int[][] rowCount = {{1, 1}, {1, 1}, {1, 1}, {1, 1}};
final JPanel panel = TableLayoutHelper.createGapTableLayoutPane(components, rowSize, columnSize, rowCount, 30, LayoutConstants.VGAP_LARGE);
panel.setBorder(BorderFactory.createEmptyBorder(10, 0, 0, 0));
final JPanel panelWrapper = FRGUIPaneFactory.createBorderLayout_S_Pane();
panelWrapper.add(panel, BorderLayout.NORTH);
UIExpandablePane folderPane = new UIExpandablePane("图表自适应", 280, 20, panelWrapper);
this.add(folderPane, BorderLayout.NORTH);
this.bingListeners2Widgets();
this.setGlobalNames();
this.repaint();
}
private void bingListeners2Widgets() {
reInitAllListeners();
this.changeListener = new AttributeChangeListener() {
@Override
public void attributeChange() {
update();
}
};
}
/**
* 后台初始化所有事件.
*/
private void reInitAllListeners() {
initListener(this);
}
@Override
public void populate(FormDesigner designer) {
// this.designer = designer;
// this.addAttributeChangeListener(changeListener);
// ChartEditor elementCaseEditor = (ChartEditor)xCreator.toData();
// this.hComboBox.setSelectedItem(new Item (elementCaseEditor.getHorziontalAttr().description(), elementCaseEditor.getHorziontalAttr()));
// this.vComboBox.setSelectedItem(new Item (elementCaseEditor.getVerticalAttr().description(), elementCaseEditor.getVerticalAttr()));
// this.heightRestrictCheckBox.setSelected(elementCaseEditor.isHeightRestrict());
// this.maxHeightLabel.setVisible();
// this.maxHeightSpinner.setVisible(elementCaseEditor.isHeightRestrict());
// this.maxHeightSpinner.setValue(elementCaseEditor.getHeightPercent());
}
@Override
public void update() {
// DesignerContext.getDesignerFrame().getSelectedJTemplate().fireTargetModified(); // 触发设计器保存按钮亮起来
// String globalName = this.getGlobalName();
// switch (globalName) {
// case "hComboBox":
//// ((ChartEditor)xCreator.toData()).setHorziontalAttr(((MobileFitAttrState)((Item)hComboBox.getSelectedItem()).getValue()));
// break;
// case "vComboBox":
//// ((ChartEditor)xCreator.toData()).setVerticalAttr(((MobileFitAttrState)((Item)vComboBox.getSelectedItem()).getValue()));
// break;
// case "heightRestrictCheckBox":
// boolean isHeightRestrict = heightRestrictCheckBox.isSelected();
//// ((ChartEditor)xCreator.toData()).setHeightRestrict(isHeightRestrict);
// maxHeightSpinner.setVisible(isHeightRestrict);
// maxHeightLabel.setVisible(isHeightRestrict);
// break;
// case "maxHeightSpinner":
//// ((ChartEditor)xCreator.toData()).setHeightPercent(maxHeightSpinner.getValue());
// break;
// }
}
private void setGlobalNames() {
// this.hComboBox.setGlobalName("hComboBox");
// this.vComboBox.setGlobalName("vComboBox");
// this.heightRestrictCheckBox.setGlobalName("heightRestrictCheckBox");
// this.maxHeightSpinner.setGlobalName("maxHeightSpinner");
}
}
Loading…
Cancel
Save