Browse Source

Merge pull request #156 in BA/design from ~NEIL/design:master to master

* commit 'c68ec12df0cf1f9e519056a8fb9b3eb45e418cf5':
  冲突修正
master
superman 9 years ago
parent
commit
febb4388f7
  1. 94
      designer/src/com/fr/design/report/mobile/AppFitBrowserPane.java
  2. 71
      designer/src/com/fr/design/report/mobile/AppFitPreviewPane.java
  3. 4
      designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java
  4. 41
      designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java

94
designer/src/com/fr/design/report/mobile/AppFitBrowserPane.java

@ -0,0 +1,94 @@
package com.fr.design.report.mobile;
import com.fr.base.mobile.MobileFitAttrState;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.general.Inter;
import com.fr.report.mobile.ElementCaseMobileAttr;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
/**
* Created by 夏翔 on 2016/5/28.
*/
public class AppFitBrowserPane extends BasicBeanPane<ElementCaseMobileAttr> {
//横屏设置面板
private MobileRadioGroupPane horizionPane;
//竖屏设置面板
private MobileRadioGroupPane verticalPane;
//缩放选项面板
private MobileRadioCheckPane radioCheckPane;
//效果预览面板
private AppFitPreviewPane appFitPreviewPane;
public AppFitBrowserPane(){
initComponents();
}
private void initComponents() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
JPanel borderPane = FRGUIPaneFactory.createTitledBorderPane(this.title4PopupWindow());
JPanel fitOpsPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
horizionPane = new MobileRadioGroupPane(Inter.getLocText("FR-Designer_Mobile-Horizontal"));
verticalPane = new MobileRadioGroupPane(Inter.getLocText("FR-Designer_Mobile-Vertical"));
radioCheckPane = new MobileRadioCheckPane(Inter.getLocText("FR-Designer_Mobile-Zoom"));
ActionListener actionListener = getAppPreviewActionListener();
horizionPane.addActionListener(actionListener);
verticalPane.addActionListener(actionListener);
fitOpsPane.add(horizionPane, BorderLayout.NORTH);
fitOpsPane.add(verticalPane, BorderLayout.CENTER);
fitOpsPane.add(radioCheckPane, BorderLayout.SOUTH);
borderPane.add(fitOpsPane);
this.add(borderPane);
}
public void setAppFitPreviewPane(AppFitPreviewPane appFitPreviewPane) {
this.appFitPreviewPane = appFitPreviewPane;
}
//纵向和横向独立设置
public int[] getCurrentFitOptions() {
return new int[]{horizionPane.getSelectRadioIndex(), verticalPane.getSelectRadioIndex(), radioCheckPane.getCurrentState()};
}
@Override
public void populateBean(ElementCaseMobileAttr ob) {
if (ob == null) {
ob = new ElementCaseMobileAttr();
}
horizionPane.populateBean(ob.getHorziontalAttr());
verticalPane.populateBean(ob.getVerticalAttr());
radioCheckPane.populateBean(ob.isZoom());
appFitPreviewPane.refreshPreview(getCurrentFitOptions());
}
@Override
public ElementCaseMobileAttr updateBean() {
MobileFitAttrState horizonState = horizionPane.updateBean();
MobileFitAttrState verticalState = verticalPane.updateBean();
boolean isZoom = radioCheckPane.updateBean();
return new ElementCaseMobileAttr(horizonState, verticalState, isZoom);
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText("FR-Designer_Fit-App");
}
private ActionListener getAppPreviewActionListener() {
return new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int[] fitOptions = getCurrentFitOptions();
appFitPreviewPane.refreshPreview(fitOptions);
}
};
}
}

71
designer/src/com/fr/design/report/mobile/AppFitPreviewPane.java

@ -0,0 +1,71 @@
package com.fr.design.report.mobile;
import com.fr.design.dialog.BasicPane;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.general.IOUtils;
import com.fr.general.Inter;
import javax.swing.*;
import java.util.ArrayList;
/**
* Created by 夏翔 on 2016/5/28.
*/
public class AppFitPreviewPane extends BasicPane{
private UILabel horizontalImageLabel;
private UILabel verticalImagelabel;
private ArrayList<ImageIcon> cachedVerticalPreviewImage = new ArrayList<ImageIcon>();
private ArrayList<ImageIcon> cachedHorizonPreviewImage = new ArrayList<ImageIcon>();
public AppFitPreviewPane() {
//初始化缓存图片
initCacheImage();
//初始化组件
initComponents();
}
private void initCacheImage() {
cachedVerticalPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/V0.png")));
cachedVerticalPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/V1.png")));
cachedVerticalPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/V2.png")));
cachedVerticalPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/V3.png")));
cachedHorizonPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/H0.png")));
cachedHorizonPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/H1.png")));
cachedHorizonPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/H2.png")));
cachedHorizonPreviewImage.add(new ImageIcon(IOUtils.readImage("/com/fr/design/images/dialog/appfit/H3.png")));
}
private void initComponents() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
JPanel outnorthPane = FRGUIPaneFactory.createTitledBorderPane(this.title4PopupWindow());
this.add(outnorthPane);
horizontalImageLabel = new UILabel();
horizontalImageLabel.setIcon(cachedHorizonPreviewImage.get(1));
outnorthPane.add(horizontalImageLabel);
verticalImagelabel = new UILabel();
verticalImagelabel.setIcon(cachedVerticalPreviewImage.get(0));
outnorthPane.add(verticalImagelabel);
}
public void refreshPreview(int[] index) {
ImageIcon newHorizonImageIcon = cachedHorizonPreviewImage.get(index[0]) ;
ImageIcon newVerticalImageIcon = cachedVerticalPreviewImage.get(index[1]);
horizontalImageLabel.setIcon(newHorizonImageIcon);
verticalImagelabel.setIcon(newVerticalImageIcon);
}
@Override
protected String title4PopupWindow() {
return Inter.getLocText("FR-Plugin_Preview");
}
}

4
designer/src/com/fr/design/report/mobile/MobileRadioGroupPane.java

@ -1,11 +1,11 @@
package com.fr.design.report.mobile;
import com.fr.base.mobile.MobileFitAttrState;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.gui.ibutton.UIRadioButton;
import com.fr.design.gui.ilable.UILabel;
import com.fr.design.layout.TableLayout;
import com.fr.design.layout.TableLayoutHelper;
import com.fr.base.mobile.MobileFitAttrState;
import com.fr.stable.StringUtils;
import javax.swing.*;
@ -17,7 +17,7 @@ import java.util.List;
/**
* Created by Administrator on 2016/5/16/0016.
*/
public class MobileRadioGroupPane extends BasicBeanPane<MobileFitAttrState> {
public class MobileRadioGroupPane extends BasicBeanPane<MobileFitAttrState>{
private List<UIRadioButton> radioButtons = new ArrayList<UIRadioButton>();

41
designer/src/com/fr/design/report/mobile/ReportMobileAttrPane.java

@ -1,43 +1,33 @@
package com.fr.design.report.mobile;
import com.fr.base.mobile.MobileFitAttrState;
import com.fr.design.beans.BasicBeanPane;
import com.fr.design.layout.FRGUIPaneFactory;
import com.fr.general.Inter;
import com.fr.report.mobile.ElementCaseMobileAttr;
import javax.swing.*;
import java.awt.*;
/**
* Created by Administrator on 2016/5/12/0012.
*/
public class ReportMobileAttrPane extends BasicBeanPane<ElementCaseMobileAttr> {
public class ReportMobileAttrPane extends BasicBeanPane<ElementCaseMobileAttr>{
//横屏设置面板
private MobileRadioGroupPane horizionPane;
//竖屏设置面板
private MobileRadioGroupPane verticalPane;
//缩放设置面板
private MobileRadioCheckPane radioCheckPane;
private AppFitBrowserPane appFitBrowserPane;
public ReportMobileAttrPane() {
initComponents();
}
private void initComponents() {
this.setLayout(FRGUIPaneFactory.createBorderLayout());
JPanel borderPane = FRGUIPaneFactory.createTitledBorderPane(this.title4PopupWindow());
this.setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
this.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
AppFitPreviewPane appFitPreviewPane = new AppFitPreviewPane();
appFitBrowserPane = new AppFitBrowserPane();
appFitBrowserPane.setAppFitPreviewPane(appFitPreviewPane);
this.add(appFitBrowserPane);
JPanel fitOpsPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
horizionPane = new MobileRadioGroupPane(Inter.getLocText("FR-Designer_Mobile-Horizontal"));
verticalPane = new MobileRadioGroupPane(Inter.getLocText("FR-Designer_Mobile-Vertical"));
radioCheckPane = new MobileRadioCheckPane(Inter.getLocText("FR-Designer_Mobile-Zoom"));
fitOpsPane.add(horizionPane, BorderLayout.NORTH);
fitOpsPane.add(verticalPane, BorderLayout.CENTER);
fitOpsPane.add(radioCheckPane, BorderLayout.SOUTH);
borderPane.add(fitOpsPane);
this.add(borderPane);
this.add(appFitPreviewPane);
}
@Override
@ -45,18 +35,13 @@ public class ReportMobileAttrPane extends BasicBeanPane<ElementCaseMobileAttr> {
if (ob == null) {
ob = new ElementCaseMobileAttr();
}
appFitBrowserPane.populateBean(ob);
horizionPane.populateBean(ob.getHorziontalAttr());
verticalPane.populateBean(ob.getVerticalAttr());
radioCheckPane.populateBean(ob.isZoom());
}
@Override
public ElementCaseMobileAttr updateBean() {
MobileFitAttrState horizonState = horizionPane.updateBean();
MobileFitAttrState verticalState = verticalPane.updateBean();
boolean isZoom = radioCheckPane.updateBean();
return new ElementCaseMobileAttr(horizonState, verticalState, isZoom);
return appFitBrowserPane.updateBean();
}
@Override

Loading…
Cancel
Save